解题思路:
注意事项:
参考代码:
/* 当数小于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分
4 人评分