美文网首页
L1_046整出光棍(处理较大的数的除法)

L1_046整出光棍(处理较大的数的除法)

作者: 我好菜啊_ | 来源:发表于2018-03-26 14:45 被阅读0次

这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由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


  • 思路
    我一开始就用了普通的每次循环加一位直到可以被x整除,当然会超时
    然后优化超时的第一步是,找到了大于x的第一个光棍数再进行除法,但还是超时了说明这不是主要问题
    然后去网上查到了这个方法,先假设有一个很长很长全为1的数,按照除法列式的思路,每次先除然后把结果写在上面,然后余数再加上后面的位数(后面都是1),再进行除法,知道遇到余数为0时即可停下,记录所使用的位数
    然后这下通过了,但循环次数和之前明明是一样的,是因为大数的除法很耗时吗,期间还进行了很多重复的操作,比如用11111去除一个数是,前四位1111的操作再上一轮循环已经进行过了
    参考:https://blog.csdn.net/qq_36124802/article/details/70847025

#include <iostream>
using namespace std;
int main()
{
    int x;
    cin>>x;
    long long singal=1;
    int ws=1;
    while(singal<x){
        singal=singal*10+1;
        ++ws;
    }
    while(1){
        if(singal%x==0){
            cout<<singal/x;
            break;
        }else{
            cout<<singal/x;
            singal=(singal%x)*10+1;
            ++ws;
        }
    }
    cout<<" "<<ws;
    return 0;
}

相关文章

  • L1_046整出光棍(处理较大的数的除法)

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光...

  • 趣味数学故事92……“0”为什么不能做除数

    什么是分数除法:分数除法是分数乘法的逆运算。分数除法计算法则:甲数除以乙数(O除外),等于甲数乘乙数的倒数...

  • 有理数的除法法则教学设计

    一、知识与技能目标 学生能够通过探索理解有理数除法法则,能利用有理数除法法则计算两个数的除法,并能说出有理数除法的...

  • 纪实三数单元实施活动系列一《除法》

    课题:除法(两、三位数除以一位数) 主要内容:两、三位数除以一位数的除法和连除、乘除混合运算,并解决有关的实际问题...

  • 记实"单元实施活动"系列一《除法》

    课题:除法(两、三位数除以一位数) 主要内容:两、三位数除以一位数的除法和连除、乘除混合运算,并解决有关的实际问题...

  • 表内除法(2)——贞元教育

    已经穿越过了除法浪漫阶段学习的小贝壳,对于除法运算有哪些认识呢? 儿童最早对于运算的认识,并不来自于抽象的数与数之...

  • 趣味数学故事72……辗转相除法

    在我国古代,人们就开始利用辗转相除法来求较大的两个数的最大公因数了。 用辗转相除法求两个数的最大公...

  • 求最大公约数的4种算法

    算法一:短除法 想法,采用短除法找出2个数的所有公约数,将这些公因子相乘,结果就是2个数的最大公约数。【找公因子,...

  • 缺失值处理

    1. 删除 主要有简单删除法和权重法。简单删除法是对缺失值进行处理的最原始方法。 (1) 简单删除法 此方法将存在...

  • 被数独折磨的“乐趣”

    嗯,数独吧!是乐趣,也是折磨。 乐趣,是当你成功使用唯一解法,排除法,唯余法和后选数删除法,成功破解,使它横竖都是...

网友评论

      本文标题:L1_046整出光棍(处理较大的数的除法)

      本文链接:https://www.haomeiwen.com/subject/talrcftx.html