數學取模運算——1的個數
阿新 • • 發佈:2019-02-18
問題 I: 1的個數
時間限制: 1 Sec 記憶體限制: 32 MB提交: 9 解決: 6
[提交][狀態][討論版]
題目描述
對於一個給定的[0,10000]內的不能被2或5整除的整數n,n放大某些倍數後,結果會是僅由很多1組成的一個數a。現在請你找出最小的那個a中包含的1的個數。輸入
輸入包含多組測試資料。每組輸入為一個整數n(0<=n<=10000)。輸出
對於每組輸入,輸出最小的那個a中包含的1的個數。樣例輸入
3
7
9901
樣例輸出
3
6
12
提示
模運算的重要結論:(a*b)%p=(a%p*b)%p (a+b)%p=(a%p+b)%p
#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n) { int k=0; for(int i=1;;i++) { k=k%n*10+1;//提前讓k對n取模與原式相等 if(k%n==0) { cout<<i<<endl; break; } } } return 0; }