zoukankan      html  css  js  c++  java
  • poj 2251(同余)

    Ones
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 11461   Accepted: 6488

    Description

    Given any integer 0 <= n <= 10000 not divisible by 2 or 5, some multiple of n is a number which in decimal notation is a sequence of 1's. How many digits are in the smallest such a multiple of n?

    Input

    Each line contains a number n.

    Output

    Output the number of digits.

    Sample Input

    3 
    7 
    9901
    

    Sample Output

    3
    6
    12
    
    题意:一个数不能被2或者5整除,问这个数被 11111....整除最小的1111....的位数是多少?
    题解:利用同余就OK了,(x1+x2+x3...+xn)%n = (x1)%n+(x2)%n+...+(xn)%n
    #include <cstdio>
    #include <cstring>
    #include <queue>
    #include <algorithm>
    #include <stdlib.h>
    using namespace std;
    
    int main(){
        int n;
        while(scanf("%d",&n)!=EOF){
            int len = 1,sum=0;
            while(1){
                sum = (sum*10+1)%n;
                if(sum==0) break;
                len++;
            }
            printf("%d
    ",len);
        }
    }
  • 相关阅读:
    第二次安卓作业
    第十一次作业
    第十一次上机练习
    第十次作业
    第十次上机练习
    第九次作业
    第九次上机练习
    添加用户 Android 6
    Android 5
    activity带数据跳转
  • 原文地址:https://www.cnblogs.com/liyinggang/p/5743442.html
Copyright © 2011-2022 走看看