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);
        }
    }
  • 相关阅读:
    软工实践结对作业第二次
    团队展示
    软件工程结对作业
    软工实践第二次作业
    栈的初步学习
    课程作业四
    作业
    课程作业2
    博客汇总目录
    Mybatis-plus学习笔记,基于springboot
  • 原文地址:https://www.cnblogs.com/liyinggang/p/5743442.html
Copyright © 2011-2022 走看看