您的位置:首页 > 其它

杭电1013 Digital Roots

2017-10-16 10:02 531 查看
这一道题看完介绍以后,就直接开始写了。一开始以为挺简单的一个题目。

就写了下面一段代码

#include <iostream>
using namespace std;
int main()
{
int a,b;
while (cin>>a&&a!=0)
{
b = (a - 1) % 9 + 1;
cout << b << endl;
}

}


然后提交答案。发现WA了。想了很长觉得没问题呀。最后还是发现原来还是字符长度不够。题目中明明说可以整型的。发现最后还是需要字符串来操作才可以解决问题

#include <iostream>
#include <string>
using namespace std;
int main()
{
string a;
int b;
while (cin >> a)
{
int sum = 0;
if (a[0] == '0')
{
break;

}
else
{
for (int i = 0; a[i] != '\0'; i++)
{
sum += a[i] - '0';
}
while (sum >= 10)
{
b = sum;
sum = 0;
while (b)
{
sum += b % 10;
b /= 10;
}

}
cout << sum << endl;

}
}
}


这样最后发现终于成功了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: