l1-046 整除光棍 (20 分)
這裡所謂的「光棍」,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入乙個整數x
,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第乙個數字s
,表示x
乘以s
是乙個光棍,第二個數字n
是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
輸入在一行中給出乙個不以5結尾的正奇數x
(<1000)。
在一行中輸出相應的最小的s
和n
,其間以1個空格分隔。
31
3584229390681 15
思路:這道題如果你做的話你會發現資料很大,如果直接暴力的話,會炸掉。所以一般這種情況下,都是有技巧的。 這道題你可以得到乙個除數就輸出乙個除數,直到最後餘數等於0時結束。比如x=13,令m=1,a作為每次的結果除數,因為當m=1和11除以13除數都是0,可以不要,辣麼m就從111開始,則a=111/13=8,然後輸出a,此時m也要變,m=111%13=7;然後讓m=7*10+1=71,則a=71/13=5,然後輸出a,m=71%13=6;然後讓m=6*10+1=61,則a=61/13=4,然後輸出a,m=61%13=9;然後讓m=9*10+1=91;則a=91/13=7,然後m=91%13=0,則跳出迴圈。其實這和我們在草稿紙上計算兩個數相除 過程是一樣的,只不過在計算機中被分解成了一步一步的運算,直到餘數為0。
---------------------
參考原文:
剛開始暴力,然後炸了……可以理解#include typedef long long ll;
using namespace std;
char ans[10002];
int main()
now%=n;
if(now==0)
}return 0;
}
#include typedef long long ll;
using namespace std;
int main()
s=s+"1";
// cout<} cout
}
L1 046 整除光棍
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 翁愷 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現...
L1 046 整除光棍
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 翁愷 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現...
L1 046 整除光棍
這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字 第乙個數字s,表示x乘以...