大佬们,请问如何用代码解决以下问题?
有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大,并且各位数字之和等于各位数字相乘之积,此三位数的结果是
有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大,并且各位数字之和等于各位数字相乘之积,此三位数的结果是
先得到各位数字,判断和与积是否相等,相等再比较三个数大小
void main();
{
for(int i=100;i<1000;i++)
{
int a = i/100;
int c = i%10;
int b = (i-a*100-c)/10;
if(a*b*c == a+b+c && a>b && b>c)
printf("这个数是:%d\n",i);
}
}
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++)//个
{
for (int j = 0; j < 10; j++)//十
{
for (int k = 0; k < 10; k++)//百
{
if (i > k && k > j && (i+j+k) == ijk)
{
printf("%d\n", i+j10+k100);
return 0;
}
}
}
}
return 0;
}
结果是213
这个很简单的,我们可以先分别定义三个变量i,j,k。
并且规定i代表百位,j代表10位,k代表个位。
计算条件如下:
(1)个位比百位大----->k > i
(2)百位比十位大----->i > j
(3)三位之和等于三位之积---->(i+j+k) == (i * j * k)
用三个for循环就可以计算出来是213,代码如下:
#include <stdio.h>
int main()
{
int i,j,k;//表示百位,十位和个位数
for(i = 0;i < 10;i++)
{
for(j = 0;j < 10;j++)
{
for(k = 0;k < 10;k++)
{
//首先满足三数之和等于三数之积
if((i+j+k) == (i*j*k))
{
//然后个位大于百位,百位大于十位
if(k > i && i > j)
{
printf("%d%d%d\n",i,j,k);
}
}
}
}
}
return 0;
}
第一次玩这个,不太懂规则,还望海涵