L1 046 整除光棍 (20 分)

2021-09-11 10:54:55 字數 874 閱讀 1441

這裡所謂的「光棍」,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第乙個數字s,表示x乘以s是乙個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。

輸入格式:

輸入在一行中給出乙個不以5結尾的正奇數x(<1000)。

輸出格式:

在一行中輸出相應的最小的s和n,其間以1個空格分隔。

輸入樣例:

31輸出樣例:

3584229390681 15

分析:本題第一眼看,就會發現這是個大數除法加大數取餘;複雜度有點高呀。

但是通過分析會發現一些規律:

因為它這個數只能新增1,那麼我們可以通過豎式的除法來做。

如果這個數取餘x==0;那麼這個數就已經是要找的數了。

題目實際上是求各個位全為1的數被輸入數x除盡後的商的最小值,由於商可能過大,故採用模擬豎式除法的方式求出商的各個位並輸出。顯然,除數為x,被除數一開始需要在末位不斷添1直到被除數不小於除數,才開始求商。求出第乙個商後求餘數,若餘數為0說明運算結束,否則在餘數末位添1,重複上述求商過程。

參考部落格:

#include"stdio.h"

#include"string.h"

#include"algorithm"

using namespace std;

int main()

int result;

while(1)

printf(" %d\n",n);

}}

L1 046 整除光棍 (20 分)

這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字 第乙個數字s,表示x乘以...

L1 046 整除光棍 (20 分

l1 046 整除光棍 20 分 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出...

L1 046 整除光棍 (20 分

l1 046 整除光棍 20 分 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出...