#include<sidio.h>
main( )
{
int x,y,z;
for(x=1;x<=20;x++)
for(y=1;y<34;y++)
{
Z=100-X-y;
if(x5+y3+z/3.0==100)
printf(" %d,%d, %d,\n",x,y,z);
}
}//有没有简便的运算方法
运算过程:
x 从1 到 20 取值,
y 从 1 到 33 取值
z =100 - (1~20) - (1~33) 变化取值
判断 if(x*5+y*3+z/3.0==100) 满足条件的输出 x y z .
头文件#include<sidio.h> 写错了,应该为:#include<stdio.h>
//x+y+z=100且满足5x+3y+z/3=100且1<=x<=20且1<=y<34
#include<stdio.h>
int main( )
{
int x,y,z;
for(x=1; x<=20; x++)
for(y=1; y<34; y++)
for(z=1; z<100; z++)
if(x*5+y*3+z/3==100&&z==100-x-y)
printf(" %d, %d, %d \n",x,y,z);
}
//x+y+z=100且满足5x+3y+z/3=100且1<=x<=20且1<=y<34
在1<=x<=20, 1<=y<=33的范围内求解方程组
x+y+z=100
5x+3y+z/3=100
的所有整数解
就这题而论,更简单的计算需要对方程组进行如下转换
x+y+z=100
15x+9y+z=300
然后
x+y+z=100
14x+8y=200
最后
7x+4y=100
x+y+z=100
于是
for (int x=100/7; x>=0; y--) {
if (x<0) continue;
if (x>20) continue;
int y = (100 - 7 * x )/4;
if ((4 * y + 7 * x) != 100) continue;
if (y<0 ) continue;
if (y>33) continue;
z = 100 - x - y ;
printf(...);
}