本文主要是介绍HDU_1013,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个题目尤其需要注意的是开始输入的时候的数的大小,开始输入时有可能非常的大
超过了长整型的范围,所以不能开始用整形来存放输入的,,就是开始的时候没有注意到这个问题
所以开始的时候一直没有AC,后来就是用一个数组接收输入,然后在经过第一步转化之后就可以用一个
整数来装了
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;//确定一个整数有几位。
int querry_number(int a)
{int flag=0;while(a){a/=10;flag++;}return flag;
}
//将一个整数的几位相加起来.
int add_numbers(int interg)
{int numbers;int result=0;numbers=querry_number(interg);char a[100];itoa(interg,a,10);for(int i=0;i<numbers;i++){result=result+(int)a[i]-48;}return result;
}
//求出最终的那个数的单数是几.
int singal_digital(int interg)
{int a=interg;int numbers;while(1){numbers= querry_number(a);if(numbers==1)return(a);elsea=add_numbers(a);}
}int main()
{string str;while (getline(cin,str),str[0]!='0'){int numbers=0;numbers=str.size();int buffer;int result=0;for(int i=0;i<numbers;i++)result=result+(int)str[i]-48;result=singal_digital(result);cout<<result<<endl; }return 1;
}
这篇关于HDU_1013的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!