Pat天梯 L1 046 整除光棍

2021-09-13 09:54:25 字數 900 閱讀 2325

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

題中已提示s可能是個非常大的數,沒有結構能存下,所以不能暴力解決,採用諸位計算的方法,用while迴圈,第乙個while迴圈找出乙個不小於x的光棍數n(在進一位的時候不要忘記將位數變數k加一),進入第二個while迴圈,判斷n能否整除x,能的話n/x就是我們要找的數x,光棍數n的位數就是k;如果n不能整除x,說明n的位數還不夠多,先輸出n/x,然後讓n等於n對x的餘數,再把n進一位,也就是n=n*10+1,通過這樣的方法實現n的進製。然後繼續判斷,直到n能整除x為止,這時累積輸出的所有商列在一起就構成了數s,而最後我們要求的光棍數的位數就是k。

#include#includeusing namespace std;

int main()

else if(flag==1)

cout<<"0";//當nif(n==0)//當n剛好能整除x時,跳出迴圈

break;

k++;//光棍位數

}cout<<" "

}

L1 046 整除光棍 PAT

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

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整除。現...