青叶


私信TA

用户名:15005097886

访问量:11373

签 名:

等  级
排  名 1939
经  验 2448
参赛次数 0
文章发表 28
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

/*
当数小于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分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区