/*========================================================================
求特殊自然数
总时间限制:
1000ms
内存限制:
65536kB
描述
一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示. 输入为1时,输出此自然数的十进制表达式;输入为2时,输出此自然数的七进制表达式;输入为3时,输出此自然数的九进制表达式。
输入
输入为1,2,3中的一个数。
输出
输出一行。
输出为十进制或七进制或九进制数
样例输入
1 样例输出
(特殊题目,不显示样例输出)
==========================================================================*/
#include<stdio.h>
#include<string.h>
void MyItoa(int value,char a[],int r);//把十进制非负整数value转成r进制数的字符串存储到a[]数组
//itoa函数不是标准C的函数,所以这里自己实现了一个比较简单的子函数。
int main()
{
int i,a;
char str7[],str9[],temp;
for(i=;i<=;i++)
{
MyItoa(i,str7,);
MyItoa(i,str9,);
if(strlen(str7)==&&strlen(str9)==)
{
temp=str7[];
str7[]=str7[];
str7[]=temp;
if(strcmp(str7,str9)==)
break;
}
}
scanf("%d",&a);
if(a==) printf("%d\n",i);
else if(a==)
{
MyItoa(i,str7,);
printf("%s\n",str7);
}
else printf("%s\n",str9);
return ;
}
void MyItoa(int value,char a[],int r)//把十进制非负整数value转成r进制数的字符串存储到a[]数组
{//r的范围是2~10
int i=,len;
char t;
while(value>)
{
a[i]=value%r+'';
value=value/r;
i++;
}
a[i]='\0';
len=i;
for(i=;i<len/;i++)
{
t=a[i];
a[i]=a[len--i];
a[len--i]=t;
}
}