航电oj 1013

数位拆解、字符串的操作

题目链接

题目大意:对于给定的一个正数,将它的个位十位百位(以此类推)拿出来作为单独的数字然后累加,如果加起来的数小于 10 则输出,大于 10 就继续按照规则运算。

解题思路:刚开始想的是用数位拆解,把接收的数不断拆解然后求和进行,但自己调试结果是正确的,但是代码一直无法通过,看过别人的思路后才知道输入可能过大用字符串存储然后拆解。刚开始看题的时候就在想为什么输入没有限定范围,这个坑还是挺磨人的。

#include
#include
using namespace std;

int main(){
    string a;
    while(cin>>a && a!="0"){
        int ans = 0;
        for(int i=0;i= 10){
                ans = ans/10 + ans%10;
            }
        }
        cout<

你可能感兴趣的:(航电oj 1013)