• 5.29每日一题题解


    L1-046 整除光棍

    涉及知识点:

    • 思维、数学

    solution:

    • 这道题如果你做的话你会发现数据很大,如果直接暴力的话,会炸掉。

    • 所以一般这种情况下,都是有技巧的。 这道题你可以得到一个除数就输出一个除数,直到最后余数等于0时结束。

    • 比如x=13,令m=1,a作为每次的结果除数,因为当m=1和11除以13除数都是0

    • (可以不要,辣么m就从111开始,则a=111/13=8,然后输出a,此时m也要变)

    • m = 111%13=7;然后让m=7*10+1=71,则a=71/13=5,然后输出a,m=71%13=6

    • (然后让m=6*10+1=61,则a=61/13=4,然后输出a,m=61%13=9;然后让m=9*10+1=91)

    • (则a=91/13=7,然后m=91\%13=0,则跳出循环。)

    • 其实这和我们在草稿纸上计算两个数相除 过程是一样的,只不过在计算机中被分解成了一步一步的运算,直到余数为0。

    • (这是我从网上看到的一篇比较好而且较容易理解的思路,所以放到了这里。自己最好在草稿纸纸上演算一下除法过程)

    std:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int x,s = 0,n = 0;
        cin >> x;
        while(x > s){
            s = s * 10 + 1;
            n ++;
        }
        while(1){
            cout << s / x;
            s = s % x;
            if(!s)break;
            s = s * 10 + 1;
            n ++;
        }
        cout << " " << n << endl;
        return 0;
    }
    
    
  • 相关阅读:
    第二阶段站立会议第三天
    第二阶段站立会议第二天
    第二阶段站立会议第一天
    测试计划
    cnblogs用户体验及建议
    第一阶段绩效评估
    第一阶段各组意见回复
    第一阶段团队评价
    站立会议第十天
    站立会议第九天
  • 原文地址:https://www.cnblogs.com/QFNU-ACM/p/12985473.html
Copyright © 2020-2023  润新知