题意:

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

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<deque>
#include<queue>
#include<list>
#define lowbit(x) (x & (-x))
const double eps = 1e-8;
inline int dcmp(double a, double b){if(fabs(a - b) < eps) return 0;return a > b ? 1 : -1;
}
typedef long long LL;
typedef unsigned long long ULL;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const LL LL_INF = 0x3f3f3f3f3f3f3f3f;
const LL LL_M_INF = 0x7f7f7f7f7f7f7f7f;
const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const int MOD = 1e9 + 7;
const double pi = acos(-1.0);
const int MAXN = 20 + 10;
const int MAXT = 10000 + 10;
using namespace std;
int main(){string xx;cin >> xx;int len = xx.size();int x = 0;for(int i = 0; i < len; ++i){x = x * 10 + xx[i] - '0';}int cnt = 0;string s;string ans;while(1){ans = "";++cnt;s += "1";if(cnt < len) continue;int sum = 0;for(int i = 0; i < len; ++i){sum = sum * 10 + 1;}int st = len;if(x > sum){sum = sum * 10 + 1;++st;}if(cnt < st) continue;while(st <= cnt){int shang = sum / x;ans += shang + '0';sum %= x;if(st == cnt) break;++st;sum = sum * 10 + 1;}if(sum == 0){break;}}cout << ans << " " << cnt << endl;return 0;
}

  

转载于:https://www.cnblogs.com/tyty-Somnuspoppy/p/8653641.html

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

  1. L1-046 整除光棍 (大数除法)(20 分)

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

  2. L1-046 整除光棍 (20 分)模拟除法

    https://pintia.cn/problem-sets/994805046380707840/problems/994805084284633088 L1-046 整除光棍 (20 分) 这里所 ...

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

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

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

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

  5. 团体程序设计天梯赛-练习集-L1-046. 整除光棍

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

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

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

  7. 整除光棍(附简要证明)

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

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

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

  9. 整除光棍 (20 分)

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

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

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

最新文章

  1. Ajax中POST和GET的区别
  2. koa中上传文件到阿里云oss实现点击在线预览和下载
  3. 新手怎样学习C语言C++?
  4. 稳定币GUSD的优劣势分析
  5. sencha touch 入门学习资料大全
  6. rust笔记7 rust中的包管理
  7. 大学平均绩点计算器_申请韩国名校绩点是不是万能的?
  8. E20180418-hm
  9. C语言九九乘法表(五种输出形式)
  10. GHOST自动恢复说明
  11. !peb和PEB结构
  12. 这些好用的抠图软件,助你实现一键抠图
  13. larvel安装步骤
  14. 【MicroPython ESP32】ssd1306驱动0.96“I2C屏幕cube3D图形显示
  15. 【codeforces85D】
  16. 深入浅出PA和LNA
  17. Java、JavaScript、C语言数组的创建
  18. 北斗GPS同步时钟(授时系统)技术原理详解
  19. 群晖nas上部署gitea后修改IP地址
  20. 精益生产表格_一个精益设计系统,我们如何构建表格套件

热门文章

  1. Uva 10562 看图写树
  2. Windows Azure Camp---漫步云端,创意无限
  3. SQL Server Integration Services 包的开发与部署初探
  4. 出现authentication mode=Windows/错误解决办法
  5. leetcode讲解--566. Reshape the Matrix
  6. python学习笔记:(三)list(列表)常用的内置方法
  7. Promise详解(一) ----基础用法
  8. 自定义控件(一) Activity的构成(PhoneWindow、DecorView)
  9. 盘点互联网巨头奉献的十大开源安全工具
  10. 《大型网站服务器容量规划》一2.1 什么是容量