题目

源地址:

http://poj.org/problem?id=1519

理解

这不就是弃九法么。把每个位置上数字相加迭代即可,但是多次WA,看了discuss才知道原来数据到了2000位的,只能用数组模拟。

代码

#include <iostream>
#include <string.h>
using namespace std;

int root;
string n;

int main(int argc, char const *argv[])
{

    while (cin>>n&&n!="0")
    {
        root = 0;
        for (int i = 0; i < n.length(); i++)
        {
            root += n[i] - '0';
        }
        root %= 9;
        cout << (root == 0 ? 9 : root) << endl;
    }
    return 0;
}

更新日志

  • 2014年07月25日 已AC。