首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >整除计算器_0 整除

整除计算器_0 整除

作者头像
全栈程序员站长
发布2022-09-22 10:33:32
发布2022-09-22 10:33:32
81800
代码可运行
举报
运行总次数: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个空格分隔。

输入样例:

代码语言:javascript
代码运行次数:0
运行
复制
31

输出样例:

代码语言:javascript
代码运行次数:0
运行
复制
3584229390681 15

题解

模拟除法即可

代码语言:javascript
代码运行次数:0
运行
复制
#include<bits/stdc++.h>
#define x first
#define y second
#define send string::nops
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
typedef struct Node * pnode;
const int MAX = 1e2;
int main(){ 
   
    int x,a = 1;
    cin>>x;
    int num = 1;
    bool flag = false;
    while(true){ 
   
        if(a >= x){ 
   
            flag = true;
            printf("%d",a / x);

        }else if(flag){ 
   
            printf("0");
        }
        a = a % x;
        if(a == 0)break;
        num ++;
        a = a * 10 + 1;
    }
    cout<<" "<<num<<endl;
    return 0;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168946.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档