题目分析

一直本真电脑累我不累的思想 反正就是看是不是17的倍数那就干脆除17看有没有余好了

#include<stdio.h>  
int main()  
{  
    int i,sum;  
    char str[200];  
    while(scanf("%s",str)&&str[0]!='0') //百度的ACM写法
    {  
        sum=0;  
        for(i=0;str[i]!='\0';i++)  
        {  
            sum=sum*10+str[i]-'0';//转成整形  
            sum=sum%17;  
        }  
        printf("%s\n",sum?"0":"1"); //3目运算 如果为0就选0不是就是后者 
    }  
    return 0;  
}


点赞(31)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 20 条评论

神经韫Hacker 5年前 回复TA
sum=sum*10+str[i]-'0'为什么sum要*10啊,求人帮助,感激不尽
z能 5年前 回复TA
你这输入一个字符然后回车,就会直接出结果呀,并没有严格按照题意来做,可以先把结果用一个数组保存着,然后再一起输出。
对你代码改了一下:
#include<stdio.h>
#include<string.h>
int main()
{
	int num=0,j=0;
	char b[1000],a[1000];
	while(scanf("%s",&a)&&*a!='0')
	{
		for(int i=0;i<strlen(a);i++)
		{
			num=num*10+a[i]-'0';
			num=num%17;
		}
		if(num==0)
		b[j++]='1';
		if(num!=0)
		b[j++]='0';
		num=0;
	}
	for(int i=0;i<j;i++)
	printf("%c\n",b[i]);
	return 0;
}
灵珂 5年前 回复TA
牛啤
Tybsornner 5年前 回复TA
妙哉,小弟佩服!
LiaoChienL 6年前 回复TA
哈哈哈,别人的代码都是自己累电脑轻松,你是电脑累你轻松
丽丽峰 6年前 回复TA
三目运算符如果为0答案应该是后面的1吧,注释有点问题
刘自铭 6年前 回复TA
@emmmm 所以我看大佬都好像在用字符
刘自铭 6年前 回复TA
@emmmm 你试过那个最长的数没有,我和你一样,我估计是a[i]装不下那么大的数
别云 6年前 回复TA
佩服  启发很大
天下无双 7年前 回复TA
妙哉!