F.The Biggest Water Problem
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
链接:
https://www.nowcoder.com/acm/contest/77/F
来源:牛客网
来源:牛客网
题目描述
给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。
巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。
如果这个数字是个位数的话,那么他就满足条件。
输入描述:
给一个整数数字n(1<=n<=1e9)。
输出描述:
输出由n经过操作满足条件的数
示例1
输入
12
输出
3
说明
12 -> 1 + 2 = 3
示例2
输入
38
输出
2
说明
38 -> 3 + 8 = 11 -> 1 + 1 = 2
这个题本来还想偷一下懒,用itoa函数写,但是我发现交上去测评姬报错,可能是不支持吧。自己手写了一个。
关于itoa,以前写过备忘:我是智障
代码:
1 //F 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<algorithm> 6 #include<cmath> 7 #include<queue> 8 using namespace std; 9 const int maxn=100; 10 int a[maxn]; 11 int len; 12 void itoa(int n){ 13 len=0; 14 memset(a,0,sizeof(a)); 15 while(n){ 16 a[len++]=n%10; 17 n/=10; 18 } 19 } 20 int main(){ 21 int n; 22 ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 23 cin>>n; 24 itoa(n); 25 int tmp=0; 26 for(int i=0;i<len;i++) 27 tmp+=a[i]; 28 while(1){ 29 if(tmp>10){ 30 itoa(tmp); 31 tmp=0; 32 for(int i=0;i<len;i++) 33 tmp+=a[i]; 34 } 35 else { 36 cout<<tmp<<endl;break; 37 } 38 } 39 }