原题链接:数字整除
0.0分
14 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <string.h> int main(){ char ch[1000]={0}; int x=0,len,i=0,y,counter=0,arr[10]={-1}; scanf("%s",ch); do{ len=strlen(ch); if(len<4){ //字符转数字 for(i=0,y=0;i<len;i++){ y=y*10+ch[i]-'0'; } i=y/10-(y%10*5); if(0==i%17){ arr[counter]=1; counter++; }else{ arr[counter]=0; counter++; } }else{ //字符串预处理 去掉末尾,转换数字*5,再取三位,转换成数字减去 末尾*5,得出的结果再转回字符 y=5*(ch[len-1]-'0');//末尾的数字*5 x=(ch[len-4]-'0')*100+(ch[len-3]-'0')*10+(ch[len-2]-'0');//取剩余部分最后三位,转换成数字 x=x-y; //将得到的数字x再转回字符 if(x>=100){ ch[len-1]='\0';//需要对字符的末尾,手动加'\0我日,按照他的定理也做了,自测答案没问题,但是无法通过答案测试。不按他的定理,直接对字符串求模,居然通过了 #include <stdio.h> #include <string.h> int main(){ char ch[1000]={0}; int x=0,len,i=0,counter=0,arr[10]={-1}; scanf("%s",ch); do{ len=strlen(ch); x=ch[0]-'0'; for(i=1;i<len;i++){ x=x*10; x=x+ch[i]-'0'; x=x%17; } if(0==x){ arr[counter]=1; counter++; }else{ arr[counter]=0; counter++; } scanf("%s",ch); }while('0'!=ch[0]); for(i=0;i<counter;i++){ printf("%d\n",arr[i]); } return 0; }