牛客网 2018年全国多校算法寒假训练营练习比赛(第五场) F.The Biggest Water Problem

 
F.The Biggest Water Problem
 
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。
巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上的数字进行加和,得到新的数。
如果这个数字是个位数的话,那么他就满足条件。

输入描述:

给一个整数数字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 }

 

 

 

 

 


posted @ 2018-03-06 20:30  ZERO-  阅读(164)  评论(0编辑  收藏  举报