zoukankan      html  css  js  c++  java
  • pat--046.整除光棍(除法模拟)

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

    提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

    输入格式:

    输入在一行中给出一个不以5结尾的正奇数x(< 1000)。

    输出格式:

    在一行中输出相应的最小的s和n,其间以1个空格分隔。

    输入样例:

    31
    

    输出样例:

    3584229390681 15
    #include<iostream>  
      
    using namespace std;  
    /* 
        divisor 被除数  等于余数乘10加1 
        remainder 余数 等于被除数%除数 
        merchant 商   等于被除数/除数 
    */  
    int main(){  
        int n,count = 0,len = 0;  
        cin>>n;//除数  
        char me[1100];//商  
        int divis = 0;//被除数  
        int rem = 0;//余数  
        int flag = 0;  
        while(1){  
            count++;  
            divis = rem*10+1;  
            rem = divis %n;  
            if(divis/n != 0||flag != 0){  
                flag =1;  
                me[len++] = divis / n + '0';  
            }  
              
            if(rem == 0){  
                me[len++] ='';//算完必须要有结束符。  
                printf("%s %d
    ",me,count);  
                break;  
            }  
      
        }  
      
        return 0;  
    }  


  • 相关阅读:
    < java.util >-- Set接口
    Codeforces 627 A. XOR Equation (数学)
    Codeforces 161 B. Discounts (贪心)
    Codeforces 161 D. Distance in Tree (树dp)
    HDU 5534 Partial Tree (完全背包变形)
    HDU 5927 Auxiliary Set (dfs)
    Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
    lght oj 1257
    Codeforces 219D. Choosing Capital for Treeland (树dp)
    Codeforces 479E. Riding in a Lift (dp + 前缀和优化)
  • 原文地址:https://www.cnblogs.com/Nlifea/p/11746073.html
Copyright © 2011-2022 走看看