用java编程求解不定方程2x+3y=65在6<=x<=40,15<=y<=50区间中的全部整数解

Python020

用java编程求解不定方程2x+3y=65在6<=x<=40,15<=y<=50区间中的全部整数解,第1张

public class Test2{

public static void main(String[] a){

int i = 0

System.out.println("2x+3y=65在6<=x<=40,15<=y<=50区间中的全部整数解有:")

for(int x=6x<=40x++){

for(int y=15y<=50y++){

if((2*x+3*y)==65){

i++

System.out.println("第"+i+"组解:x="+x+",y="+y)

}

}

}

}

}

不知道你在给公式赋完变量之后是要做什么,是直接输出公式计算结果呢,还是直接把整个公式打印出来呢。

如果你是想输出计算结果的话,你的所谓的公式应该是写成了一个方法的吧,这样直接把参数传给该方法就可以得到你想要的结果了吧。

如果你是想输出替换变量之后的公式的话,那就用替换做呗,JAVA里面有一个叫MessageFormat的类可以帮你做这个事情。

比方说一个一元一次方程ax=3,a就是你想替换的变量了如果你想把它替换成3,这样的话在java里面可以这么实现

String string = "{0}x=3"

String result = MessageFormat.format(string, "3")

得到的result就是3x=3了。

二元式子的话就这么干啦:

String string = "{0}x+{1}y=3"

String result = MessageFormat.format(string, "3", "3")

结果就是3x+3y=3的啦

上例程序中首先进行宏定义,定义M来替代表达式(y*y+3*y),在s=3*M+4*M+5* M中作了宏调用。在预处理时经宏展开后该语句变为:

s=3*(y*y+3*y)+4*(y*y+3*y)+5*(y*y+3*y)

但要注意的是,在宏定义中表达式(y*y+3*y)两边的括号不能少。否则会发生错误。如当作以下定义后:

#difine M y*y+3*y

在宏展开时将得到下述语句:

s=3*y*y+3*y+4*y*y+3*y+5*y*y+3*y;

这相当于:

3y2+3y+4y2+3y+5y2+3y;