在论坛上得到一个代码,太金典了,求解释、、、
代码:
#include "stdio.h"
int main()
{
int a,c;
for(;scanf("%1d",&a),a>0;printf("%d\n",--a%9u+1))
while((c=getchar())-48u<10)
a+=c-48;
return 0;
}
杭电acm1013
答案:2 悬赏:70 手机版
解决时间 2021-12-30 18:51
- 提问者网友:轻浮
- 2021-12-30 13:29
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-12-30 15:04
1.一位数模9是它本身(9除外);整十数模9是它十位的数字(90除外);整百数摸9是它百位的数字(900除外)......
2.对于一个一般的数,可以分拆成几个10的幂的和;一般的数模9的结果,实质就是题目所描述的"数字根"(9的倍数除外).
3.反复提到9的倍数除外,那这个除外的结果是什么?想一下就清楚.所以楼主先--a再%9最后+1就是在处理这种情况
4.数字后面跟u后缀代表无符号整数,至于9啊48啊还要加这个,那是楼主在炫耀他的代码能力,大家可无视之
5.最后提醒 48 == ‘0’
2.对于一个一般的数,可以分拆成几个10的幂的和;一般的数模9的结果,实质就是题目所描述的"数字根"(9的倍数除外).
3.反复提到9的倍数除外,那这个除外的结果是什么?想一下就清楚.所以楼主先--a再%9最后+1就是在处理这种情况
4.数字后面跟u后缀代表无符号整数,至于9啊48啊还要加这个,那是楼主在炫耀他的代码能力,大家可无视之
5.最后提醒 48 == ‘0’
全部回答
- 1楼网友:鸠书
- 2021-12-30 15:50
#include
void main()
{
int sum;
int i,t,j,j1;
printf("请输入一个数:");
scanf("%d",&sum);
if(sum%10!=0)
{exit(0);}
else{
t=sum/10;
j=sum-sum/10;
j1=t*9;
if(j1==j)
{printf("%d",sum);}
}
printf("pause");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯