您的位置:首页 > 编程语言 > C语言/C++

趣味100道C语言程序题num twelve

2016-07-29 20:28 288 查看

一个奇异的三位数:一个自然数的七进制表达式是一个三位数,而这个自然数的九进制数也是一个三位数,且这两个三位数的码数顺序正好相反,求这个三位数。

#include <stdio.h>

char * int2seven(int num)
{
int i;
int step = -1;
int temp = 1;
static char seven[4];

while(num - temp >= 0)
{
temp = temp * 7;
step++;
}

temp = temp / 7;

for(i = 0;i <= step;i++)
{
seven[i] = num / temp + '0';
num = num - (num / temp) * temp;
temp = temp / 7;
}

seven[step + 1] = '\0';

return seven;
}

char * int2nine(int num)
{
int i;
int step = -1;
int temp = 1;
static char nine[4];

while(num - temp >= 0)
{
step++;
temp = temp * 9;
}

temp = temp / 9;

for(i = 0;i <= step;i++)
{
nine[i] = num / temp + '0';
num = num - (num / temp) * temp;
temp = temp / 9;
}

nine[step + 1] = '\0';

return nine;
}

int main(void)
{
int i;
int num;
int flag = 1;

for(num = 100;num <= 999 && flag;num++)
{
char * seven = int2seven(num);
char * nine = int2nine(num);

for(i = 0;i < 3; i++)
{
if(*(seven + i) != *(nine + 2 - i))
{
break;
}
else
{
if(i == 2)
{
flag = 0;
break;
}
}
}
}

printf("The speacial number is:%d\n",num - 1);

return 0;
}


调试结果为:
The speacial number is:248
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息