17、一个奇异的三位数(穷举算法)
发布网友
发布时间:2023-09-10 04:55
我来回答
共3个回答
热心网友
时间:2024-12-04 22:14
20.一个奇异的三位数
一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数
的数码正好相反,求这个三位数。
*问题分析与算法设计
根据题意可知,七进制和九进制表示的这全自然数的每一位一定小于7,可设其七进制数形式为kji(i、j
、k的取值分别为1~6),然后设其九进制表示形式为ijk。
*程序说明与注释
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<7;i++)
for(j=0;j<7;j++)
for(k=1;k<7;k++)
if(i*9*9+j*9+k==i+j*7+k*7*7)
{
printf("The special number with 3 digits is:");
printf("%d%d%d(7)=%d%d%d(9)=%d(10)\n",k,j,i,i,j,k,i*9*9+j*9+k);
}
}
*运行结果
The special number with 3 digits is:503(7)=305(9)=248(10)
热心网友
时间:2024-12-04 22:15
#include<stdio.h>
int seven(int &i)
{
int j=0,a[10];
while(i!=0)
{
a[j]=i%7;
i=i/7;
j++;
}
j--;
if(j==2)
return a[2]*100+a[1]*10+a[0];
else
return -1;
}
int nine(int &i)
{
int j=0,a[10];
while(i!=0)
{
a[j]=i%9;
i=i/9;
j++;
}
j--;
if(j==2)
return a[0]*100+a[1]*10+a[2];
else
return -2;
}
void main()
{
int i,a,b,m,n;
for(i=100;i<1000;i++)
{
m=n=i;
a=seven(m);
b=nine(n);
if(a==b)
{
printf("The special number with 3 digits is:");
printf("%d(7)=%d(9)=%d(10)\n",a,b,i);
break;
}
}
}
*运行结果
The special number with 3 digits is:503(7)=305(9)=248(10)
热心网友
时间:2024-12-04 22:15
奇异在什么地方说下啊?