2018年全国多校算法寒假训练营练习比赛(第五场)
链接:https://www.nowcoder.com/acm/contest/77/F
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。
巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。
如果这个数字是个位数的话,那么他就满足条件。
输入描述:
给一个整数数字n(1<=n<=1e9)。
输出描述:
输出由n经过操作满足条件的数
解题思路:题意很简单,输入一个数,求该数的所有位上的和,如果和大于10,继续对和求所有位上的和,直到和小于10为止
代码:
#include<stdio.h>
int balala(long long n)
{
long long a,s=0;
while(n>10)
{
a=n%10;
s=s+a;
n=n/10;
}
s=s+n; //记得加上首项
return s;
}
int main()
{
long long n,s;
scanf("%lld",&n);
s=balala(n);
while(s>10) //如果s大于10,就一直循环
s=balala(s);
printf("%lld",s);
}