计蒜客练习题:回文数(C语言atoi函数使用)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
char a[MAX]={0};
char b[MAX]={0};
int f(int num)
{	

	int i=0,j,flag=0;
	while(num>=10)
	{
		a[i] = num%10+'0';
		num/=10;
		i++;
	}
	a[i] = num+'0';
	i = strlen(a);
	

	for(j=0;j<(i/2);j++)
	{
		if(a[j]!=a[i-j-1])
		{
			flag=1;
			break;
		}
	}
	return flag;
}
int main()
{
	
	int num1,num2,i,index=0,flag=0;
	int change[MAX]={0};
	scanf("%s",&a);
	change[0] = atoi(a);
	for(i=0;i<(strlen(a)/2);i++)
	{
		if(a[i]!=a[strlen(a)-i-1])
		{
			flag=1;
			break;
		}
	} 
	if(flag)
	{
		
		do
		{
			num1 = atoi(a);	
			for(i=0;a[i]!='\0';i++)
			{
				b[i] = a[strlen(a)-i-1];
			}
			num2 = atoi(b);
			num2+=num1;	
			change[++index]=num2;
	
		}while(f(num2));
		
		
		printf("%d\n",index);
		printf("%d",change[0]);
		for(i=1;i<=index;i++)
		{
			printf("--->%d",change[i]);
		}
	}
	else
	{
	    printf("%d\n",index);
	    printf("%s",a);
	}
	
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42580577/article/details/86590926