程序计算题 500分急求

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:11:33
求方程3x-7y=1在条件|x|<100且|y|<40下的所有整数解的|x|+|y|的最小值。
set talk off
clear
min=140
for x=-99 to 99
y=int((3*x-1)/7)
z=abs(x+y)
if 3*x-7*y=1 and abs(y)<40 and min<z
min=z
* ? x,y,z
endif
endfor
? min
set talk on
return

学VB的不行,楼主用的是VF(Visual FoxPro),呵呵!

不过看楼主的程序有点“精神错乱”!中间不必显示X,Y,Z 了吧?你只求出一个最小值而已!

set talk off //关闭对话
clear //清屏
min = 999999; //写的大点,别写的太小了就行,VF能处理12位呢!
for x= -99 to 99 step 1 //循环结构开始
if (3*x-1)%7 = 0 //判断是否Y有整解!没有的话当然不再解了!
y=(3*x-1)/7
if abs(y)<40 and min < abs(x)+abs(y)
min = abs(x)+abs(y)
? x, y, abs(x)+abs(y) //想显示在这;
endif
endif
endfor
?min
set talk on
return

这样清楚了吧?
当然中间的两个判断可以写在一块!
if (3*x-1)%7 = 0 .and. abs((3*x-1)/7)<40 .and. min < abs(x)+abs((3*x-1)/7)

min = abs(x)+abs((3*x-1)/7)
? x, 3*x-1)/7, abs(x)+abs((3*x-1)/7) //想显示在这;
endif
替掉那个判断的嵌套也可以!

不过你的程序是不可以的!要我写也不这样写的!只不过按你的程序修改一下!

  •  

你到底要什么语言的啊,vb?c?汇编?

把等式变换一下
两个循环可以搞定

晕 闹了半天你问的是数学啊!--!
还当你是计算机编程语言呢!

#include"iostream.h"