其实昨晚就在做这题了,早上起来的太晚,然后刚刚提交。
此题其实一开始是想很直白的按照题目意思来操作,后期发现这样太麻烦了,而且如果拿纸笔写出来会发现其实是1-9循环的~~每次增加1,那么层层迭代下来,最终当ans<10的时候也是每次增加了1。如此,可以归纳出
roots=(n-1)%9+1
#include <stdio.h>
#include <math.h>
#include <string.h>
int main(){
char a[1003];
int i , sum;
while((scanf("%s",a) != EOF) && (a[0] != '0')){
sum = 0;
for(i = 0; i < strlen(a); i++){
sum += a[i] - 48;
}
printf("%d\n",(sum - 1) % 9 + 1);
}
return 0;
}

本文分享了一种通过数学归纳法解决编程问题的高效方法,避免了繁琐的手动迭代过程,展示了如何将复杂逻辑简化为简洁的数学表达式。通过实例解析,读者能够快速理解并应用这一技巧于实际编程中,提高代码效率。
460

被折叠的 条评论
为什么被折叠?



