把1~9的自然数分为三组,组成数字互不重复的3个3位数,且这些3位数之比为x:y:z问满足条件的所有3位数。
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
int x, y, z, f;
double a = 123, d, e,b,c;
scanf_s("%d %d %d", &x, &y, &z);//第八行。
f = 0;
d = y / x;//2
e = z / x;//3
int aa[10]//之所以不是aa[9],是因为这样不会把零排除掉,而题目是1到9。
= { 1,2,3 };//定义初始值,第一个数最小只能是123。
for (int j = 1; j <= 864; j++) {
b = a * d;
c = e * a;
if (fmod(b,1)!=0|| fmod(c, 1) != 0)//如果第一、二个数连整数都不是就运行38行。
{
goto w;
}
aa[3] = b / 100;//把第二个数的各个位拆开。
aa[4] = (int)b / 10 % 10;
aa[5] = (int)b % 10;
aa[6] = c / 100;//把第三个数的各个位拆开。