题目大意:给一个数字,每一位相加求和,不断重复过程,直到剩一位数字。
解法:考虑到输入的数字可以很大,把输入按照字符串格式读入,再逐位处理。
参考代码:
#include <iostream> #include <string> using namespace std; int main(){ string str; int sum,sum2,i; while(cin>>str&&str!="0"){ sum=0; for(i=0;i<str.size();i++){ sum+=(str[i]-'0'); } do{ sum2=0; while(sum>0){ sum2+=sum%10; sum/=10; } if(sum2<10){ cout<<sum2<<endl; break; } else sum=sum2; }while(sum>=10); } return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步