HDU - 1282 回文数猜想
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU - 1282 回文数猜想相关的知识,希望对你有一定的参考价值。
题意:对数字的一些操作。
1.在stdlib.h中有个函数itoa(),可以实现整型数字转化成字符串。(---->还有其他类型可以转换)
itoa的用法:
itoa(i,num,10);
i 需要转换成字符的数字
num 转换后保存字符的变量(数组)
10 转换数字的基数(进制)10就是说按照10进制转换数字。还可以是2,8,16等等进制类型。
2.如何把数字正序和倒序相加。
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define M 1000000 5 char num[M]; 6 int rnum[1000]; 7 int is_Palindrome(int n){ 8 memset(num,0,sizeof(num)); 9 itoa(n,num,10); 10 for(int i=0,j=strlen(num)-1;i<=j;i++,j--){ 11 if(num[i]!=num[j]) return 0; 12 } 13 return 1; 14 } 15 int add(int n){ 16 int rn=n; 17 int sum=0; 18 while(n){ 19 sum=sum*10+n%10; 20 n=n/10; 21 } 22 return sum+rn; 23 } 24 int main(){ 25 int n,count,t; 26 while(scanf("%d",&n)!=EOF){ 27 count=0,t=0; 28 if(is_Palindrome(n)==1){printf("%d\n",count);printf("%d\n",n);continue;} 29 else{ 30 while(is_Palindrome(n)!=1){ 31 rnum[t++]=n; 32 n=add(n); 33 count++; 34 } 35 rnum[t]=n; 36 } 37 printf("%d\n",count); 38 for(int i=0;i<=t;i++){ 39 if(i==0) printf("%d",rnum[i]); 40 else printf("--->%d",rnum[i]); 41 } 42 printf("\n"); 43 } 44 return 0; 45 }
以上是关于HDU - 1282 回文数猜想的主要内容,如果未能解决你的问题,请参考以下文章