第一小题
#include <stdio.h>
#include <stdlib.h>
//第三题,反序数,第一小题:求一个正整数的反序数
int main()
{
long num,num_anti,temp;
printf("请输入一个正整数:");
scanf("%ld", &num);
temp=num;
num_anti=0;
while(temp!=0)
{
num_anti=num_anti*10+temp%10;
temp/=10;
//printf("%ld ",temp);
}
printf("%ld\n", num_anti);
return 0;
}
第二小题:这种算法效率比老师给的标准代码要高一些,因为计算的次数较少
#include <stdio.h>
#include <stdlib.h>
//第三题,反序数,第二小题:求1000000以内的n n和9n为反序数,反序数要求必须位数相同,可以数字的范围是(10,11),(100,111),(1000,1111)....(100000,111111)
int main()
{
long num,num_anti,temp;
long num_base1=10;
long num_base2=11;
int i;
for(i=1;i<=5;i++)
{
//printf("%ld ",num_base1);
//printf("%ld ",num_base2);
for(num=num_base1;num<=num_base2;num++)
{
temp=num;
num_anti=0;
while(temp!=0)
{
num_anti=num_anti*10+temp%10;
temp/=10;
//printf("%ld ",temp);
}
if(num_anti==9*num)
printf("%ld\n", num);
}
num_base1*=10;
num_base2=num_base2*10+1;
}
return 0;
}