标签:poj2925 输出 digit int 2925 整数 算法 str 字符串
题目链接:http://bailian.openjudge.cn/practice/2925
2925:大整数的因子
总时间限制:
1000ms
内存限制:
65536kB
描述
已知正整数k满足2<=k<=9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。
输入
一个非负整数c,c的位数<=30。
输出
若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。
样例输入
30
样例输出
2 3 5 6
解题思路:
大整数除小整数的简单的一个应用,看是否能够被整除。
AC代码:
#include<iostream>
#include <string.h>
using namespace std;
char str[50];
int main(){
//感觉输入应该不会有空格
cin>>str;
bool flag=false;
int len=strlen(str);
for(int i=2;i<=9;i++){
//从左开始进行大整数除法
int t=0; //表示每一位处理完之后的余数
for(int j=0;j<len;j++){
//该位置的数字
int digit=str[j]-'0';
if(digit+t>=i){ //当前位够除
//当前位本身的数字加上进位
t=((digit+t)%i)*10;
}
else{
t=digit*10;
}
}
if(t==0){
cout<<i<<" ";
flag=true;
}
}
if(flag== false){
cout<<"none"<<endl;
}
return 0;
}
标签:poj2925,输出,digit,int,2925,整数,算法,str,字符串 来源: https://blog.csdn.net/weixin_40760678/article/details/100054544
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。