GitBook

这里写图片描述

找个好久也没找到原题出自哪里 所以只好用这种形式来命名啦~

因为感觉这题还是有说的必要的 挺有意思

这里的关键在于对N的限制条件 很明显这是个相对大的数字

所以还是要用字符串模拟 然后判定能否被235整除时也有了简便的判定方法

首先是2和5的判断 只需判断字符串的最后一个 也就是数字的最后一位即可

不过对于3 我还是没想到什么更好的判定 用了那个 各个数字之和能被3整除 则这个数能被3整除那个定理

#include<stdio.h>
#include<string.h>
int main() {
	char s[100];
	int l,i;
	__int64 m;
	while(scanf("%s",s)!=EOF) {
		l=strlen(s);
		if((s[l-1]-'0')%2==0)
			printf("YES\n");
		else if(s[l-1]=='0'||s[l-1]=='5')
			printf("YES\n");
		else {
			for(i=m=0; i<l; i++) {
				m=m+s[i]-'0';
			}
			if(m%3==0)
				printf("YES\n");
			else
				printf("NO\n");
		}
	}
	return 0;
}

不知道题目地址能不能进去…… 学长也不告诉题目出处…… -.- 太不体贴了 题目地址:【杭电】[0000]整除235 (密码 hpuacm 不过也许不能上传代码了……毕竟时间过好久了)