这是poj上1519题我做的答案,在自己电脑上可以运行,可是交上去就是runtimeerror,求指教。。。

2024-11-25 08:33:17
推荐回答(1个)
回答1:

#include
#include
using namespace std;

#define MAXN 105

char n[MAXN];

int root_of(int x) {
    int ret = 0;

    while (x > 0) {
        ret += x % 10;
        x /= 10;
    }
    return ret;
}

int root_of(char *x) {
    int ret = 0;

    int n = strlen(x);
    for (int i = 0; i < n; ++i) {
        ret += x[i] - '0';
    }
    return ret;
}

int main() {
while (scanf("%s", n)) {
        if (strcmp(n, "0") == 0) break;

        int rt = root_of(n);
        while (rt > 9) {
            rt = root_of(rt);
        }

        printf("%d\n", rt);
}
return 0;
}

 这个题目没有说明整数的范围,所以很多人WA。但是你这RE。明显是把C和C++混用了。


C中的字符串函数不要来处理C++的string。同理,如果你用cin的话,字符串就把char a[255]改成string a就可以AC了。