#include <stdio.h>
int main()
{
int yz(int i,int j,int k); //声明yz函数
int i,j,k;
for(i=123;i<=329;i++) //先把三个数找出来在判断是否为1-9内的数(因为最小的三位数为123,最大的三位数987 $329*3=987$)
{
j=i*2;
k=i*3;
if(yz(i,j,k))
{
printf("%d %d %d",i,j,k);
printf("\n");
}
}
return 0;
}
int yz(int i,int j,int k) //验证三个数是否为1-9函数
{
int qs(int i);
int qm(int i);
int s=qs(i)+qs(j)+qs(k);
int m=qm(i)*qm(j)*qm(k);
if(s==45&&m==362880)//验证三个数是否为1-9,控制两个条件。1-9数之和为45,1-9之积为362880
return 1;
else
return 0;
}
int qs(int i) //求一个数的各个位之和函数
{
int s=0;
while(i!=0)
{
s=s+i%10;
i=i/10;
}
return s;
}
int qm(int i) //求一个数的各个位之积函数
{
int s=1;
while(i!=0)
{
s=s*(i%10);
i=i/10;
}
return s;
}
网友评论