C语言回文及其转化问题

来源:互联网 发布:java安装错误代码1603 编辑:程序博客网 时间:2024/05/29 14:29
#include<stdio.h>#include<string.h>#include<math.h>int ishuiwen(int num){char str[10];int i,n;sprintf(str,"%d",num);n=strlen(str);for(i=0;i<n/2;i++){if(str[i]!=str[n-i-1])return 0;}return 1;}int add(int num){int numbers[10],temp1=0,temp2=0,n=0,i;temp2=num;static int j=0;while(num>=10){numbers[n++]=num%10;num/=10;}numbers[n++]=num;for(i=0;i<n;i++){temp1=temp1+numbers[i]*(int)pow(10,n-1-i);}j++;i=j;if(j>100){j=0;//一定要注意清零return -1;}if(ishuiwen(temp1+temp2)){j=0;//一定要注意清零return i;}/*else if(j>100){j=0;//一定要注意清零return -1;}*/else{return add(temp1+temp2);}}int main(){int n,i;for(i=10;i<100;i++){if(ishuiwen(i)){printf("%d是回文\n",i);}else{n=add(i);if(n==-1){printf("%d不满足猜测\n",i);}else{printf("%d经过%d次转化可以成为回文\n",i,n);}}}return 0;}

0 0
原创粉丝点击