https://pintia.cn/problem-sets/994805046380707840/problems/994805084284633088
L1-046 整除光棍 (20 分)
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由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>
typedef long long ll;
using namespace std;int main()
{//cout << "Hello world!" << endl;int x,cnt=1;ll one=1;cin>>x;while(one<x){//先找到大于除数的被除数,才能开始模拟one=one*10+1;cnt++;}while(one%x!=0){//等于0说明被除尽了cout<<one/x;one=one%x*10+1;cnt++;}cout<<one/x<<" "<<cnt;return 0;
}

L1-046 整除光棍 (20 分)模拟除法相关推荐

  1. L1-046 整除光棍 (20分)(模拟除法竖式求商的位运算)

    题目: 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可以 ...

  2. 模拟除法计算|L1-046 整除光棍 (20分)(思路)

    L1-046 整除光棍 (20分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整 ...

  3. L1-046 整除光棍 (20 分)567

    L1-046 整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数 ...

  4. 整除光棍 (20 分)

    整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,1 ...

  5. PTA 整除光棍 (20 分) Java (BigInteger简单解题)

    L1-046 整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数 ...

  6. L1-046 整除光棍 (20分) 竖式除法

    整除光棍 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可 ...

  7. 18行代码解决:(C语言)L1-046 整除光棍 (20分)

    立志用更少的代码做更高效的表达 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除. ...

  8. 天梯赛 L1-046 整除光棍 (20 分)

    非高精度写法 :模拟除法过程 #include <iostream> using namespace std;int main() {int x; cin >> x;int d ...

  9. A除以B (20) (模拟除法)

    题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入描述: 输入在1行中依次给出A和B,中间以1空格分隔 ...

最新文章

  1. 为什么顶尖高手,都是长期主义者?
  2. 懒加载实现的分页网站footer自适应
  3. vscode 代码莫名爆红(未定义标识符 “nullptr“)解决办法(VSCode 如何快速打开c_c++_properties.json文件)
  4. ADO Entities Framework不对多表查询进行优化?
  5. python字符串出栈方法_Python 实现字符串反转的9种方法
  6. Linux虚拟化KVM-Qemu分析(五)之内存虚拟化
  7. 数据结构 二叉搜索树BST的实现与应用
  8. C# winform程序运行在XP
  9. jdk下载/Linux64位 jdk1.8 jdk-8u161下载
  10. 手机号验证最新正则表达式
  11. FFmpeg 硬件加速介绍
  12. Excel突然出现很多小黑点
  13. 用JSDoc生成js文档
  14. 关于深度学习的网络流量分类论文整理(一)
  15. 求长方柱的体积和表面积
  16. h3c linux驱动 wn612_安装Ubuntu双系统系列——64位Ubuntu安装H3C的INode客户端
  17. 你是外包,麻烦不要随便偷吃公司的零食
  18. 用电脑键盘打出常用特殊符号
  19. 森林防火应急指挥GIS系统森林防火监测预警系统
  20. 新堂NUC505开发板第一炮-启动篇

热门文章

  1. OpenCV-Python (官方)中文教程(部分二)
  2. 03基础自绘-13滑动选择-tumbler
  3. Latex 设置页眉与正文顶部距离
  4. maya! board_送给自学3d建模的你,自学maya,zbrush,substance一个月的感想
  5. window10下安装Elasticsearch(es)和IK分词器
  6. App 抓包问题与解决
  7. 华为5c_华为5c手机价格及产品参数配置【图文】
  8. 从qq空间看Tencent
  9. 驱动开发 环境搭建(Win7-VS2008+WDK+DDKWzard)
  10. 我国计算机发展优势,浅析我国计算机应用发展.doc