本文主要是介绍hdu 1013(水题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:求一个数,各个数位相加,如果结果小于10则输出,否者递归进行数位相加。
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;
int result(int n)
{
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
if (sum < 10) return sum;
else return result(sum);
}
int main()
{
string line;
while (getline(cin, line) && line != "0")
{
int i, sum = 0;
for (i = 0; i < line.length(); ++i)
sum += line[i] - '0';
if (sum < 10)
cout << sum << endl;
else cout << result(sum) << endl;
}
}
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int i,n,tmp;
char a[1003];
while (scanf("%s",&a)&&a[0]!='0')
{
n=0;
for (i=0;i<strlen(a); i++)
{
n+=a[i]-48;
}
printf("%d\n",(n-1)%9+1);
}
return 0;
}
这篇关于hdu 1013(水题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!