L1-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个空格分隔。
#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. 整除光棍(模拟除法)相关推荐
- L1-046 整除光棍 (大数除法)(20 分)
这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可以被13整 ...
- L1-046 整除光棍 (20 分)模拟除法
https://pintia.cn/problem-sets/994805046380707840/problems/994805084284633088 L1-046 整除光棍 (20 分) 这里所 ...
- 模拟除法计算|L1-046 整除光棍 (20分)(思路)
L1-046 整除光棍 (20分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整 ...
- L1-046 整除光棍 (20分) 竖式除法
整除光棍 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可 ...
- 团体程序设计天梯赛-练习集-L1-046. 整除光棍
L1-046. 整除光棍 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如, ...
- L1-046 整除光棍 (20 分)567
L1-046 整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数 ...
- 整除光棍(附简要证明)
整除光棍 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可 ...
- A除以B (20) (模拟除法)
题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入描述: 输入在1行中依次给出A和B,中间以1空格分隔 ...
- 整除光棍 (20 分)
整除光棍 (20 分) 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,1 ...
- 天梯赛 L1-046 整除光棍 (20 分)
非高精度写法 :模拟除法过程 #include <iostream> using namespace std;int main() {int x; cin >> x;int d ...
最新文章
- Ajax中POST和GET的区别
- koa中上传文件到阿里云oss实现点击在线预览和下载
- 新手怎样学习C语言C++?
- 稳定币GUSD的优劣势分析
- sencha touch 入门学习资料大全
- rust笔记7 rust中的包管理
- 大学平均绩点计算器_申请韩国名校绩点是不是万能的?
- E20180418-hm
- C语言九九乘法表(五种输出形式)
- GHOST自动恢复说明
- !peb和PEB结构
- 这些好用的抠图软件,助你实现一键抠图
- larvel安装步骤
- 【MicroPython ESP32】ssd1306驱动0.96“I2C屏幕cube3D图形显示
- 【codeforces85D】
- 深入浅出PA和LNA
- Java、JavaScript、C语言数组的创建
- 北斗GPS同步时钟(授时系统)技术原理详解
- 群晖nas上部署gitea后修改IP地址
- 精益生产表格_一个精益设计系统,我们如何构建表格套件
热门文章
- Uva 10562 看图写树
- Windows Azure Camp---漫步云端,创意无限
- SQL Server Integration Services 包的开发与部署初探
- 出现authentication mode=Windows/错误解决办法
- leetcode讲解--566. Reshape the Matrix
- python学习笔记:(三)list(列表)常用的内置方法
- Promise详解(一) ----基础用法
- 自定义控件(一) Activity的构成(PhoneWindow、DecorView)
- 盘点互联网巨头奉献的十大开源安全工具
- 《大型网站服务器容量规划》一2.1 什么是容量