原题链接:数字整除
解题思路:
注意事项:
参考代码:
/* 当数小于int最大值时,直接转为int型,取余判断 当数大于int最大值时,循环递归 “个位数字去掉,再从余下的数中减去个位数的5倍 ” */ #include <iostream> #include <string> using namespace std; int strtoint(string str){ int i, num=0; for(i=0; i<str.size(); i++){ num = num*10 + (str[i]-'0'); } return num; } int main(){ int i,ans,weishu,num; string nums; while( cin>>nums && nums!="0"){ if(nums.size()<10){ cout<< (strtoint(nums)%17==0) <<endl; } else { ans=strtoint(nums.substr(nums.size()-3,3)); for(i=nums.size()-4; i>=0; i--){ weishu = ans%10; ans = (nums[i]-'0')*100 + ans/10; ans -= weishu*5; //cout<<ans<<','<<weishu<<endl; } cout<< (ans%17==0) <<endl; } } return 0; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复