L1 046 整除光棍

2021-09-10 08:22:26 字數 1260 閱讀 6448

l1-046 整除光棍 (20 分)

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

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

在一行中輸出相應的最小的sn,其間以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乘以...