如何用EXCEL或C语言求解三元一次方程的所有正整数解组 比如33a+42b+53c=46580,求a,b,c,并显示
如果要求正整数和有一位小数点的所有值呢,该怎么做比如331a+662b+993c=198800,求a,b,c....
如果要求正整数和有一位小数点的所有值呢,该怎么做
比如 331a+662b+993c=198800,求a,b,c. 展开
比如 331a+662b+993c=198800,求a,b,c. 展开
4个回答
展开全部
鼠标右击Sheet1的标签【查看代码】,在代码窗口粘贴下面的代码:
Sub ouyang()
For a = 1 To 1412
For b = 1 To 1412
c = (46580 - 33 * a - 42 * b) / 53
If c > 0 And (c = Int(c)) Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c
End If
Next
Next
End Sub
按 F5 运行程序,按Alt + F11回到Excel就可看到有 14671组解!
Sub ouyang()
For a = 1 To 1412
For b = 1 To 1412
c = (46580 - 33 * a - 42 * b) / 53
If c > 0 And (c = Int(c)) Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c
End If
Next
Next
End Sub
按 F5 运行程序,按Alt + F11回到Excel就可看到有 14671组解!
追问
如果要求正整数和有一位小数点的所有值呢,该怎么做
追答
不知道你追问的意思?举个例子说明一下吧!
展开全部
晕,你问了两个方法,楼上都正确,分给谁呢?都不好给。
还是给我吧!
方法1 c:
#include<stdio.h>
void main()
{
int a,b,c;
for(a=1;a<=10000;++a)
for(b=1;b<=10000;++b)
for(c=1;c<=10000;++c)
if(33*a+42*b+53*c==46580)
printf("a=%d\t b=%d\t c=%d\t \n",a,b,c);
}
方法2:excel方法:鼠标右击Sheet1的标签【查看代码】,在代码窗口粘贴下面的代码:
Sub ouyang()
For a = 1 To 1412
For b = 1 To 1412
c = (46580 - 33 * a - 42 * b) / 53
If c > 0 And (c = Int(c)) Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c
End If
Next
Next
End Sub
按 F5 运行程序,按Alt + F11回到Excel就可看到有 14671组解!
还是给我吧!
方法1 c:
#include<stdio.h>
void main()
{
int a,b,c;
for(a=1;a<=10000;++a)
for(b=1;b<=10000;++b)
for(c=1;c<=10000;++c)
if(33*a+42*b+53*c==46580)
printf("a=%d\t b=%d\t c=%d\t \n",a,b,c);
}
方法2:excel方法:鼠标右击Sheet1的标签【查看代码】,在代码窗口粘贴下面的代码:
Sub ouyang()
For a = 1 To 1412
For b = 1 To 1412
c = (46580 - 33 * a - 42 * b) / 53
If c > 0 And (c = Int(c)) Then
t = t + 1
Cells(t, 1) = a: Cells(t, 2) = b: Cells(t, 3) = c
End If
Next
Next
End Sub
按 F5 运行程序,按Alt + F11回到Excel就可看到有 14671组解!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int a,b,c;
for(a=1;a<=10000;++a)
for(b=1;b<=10000;++b)
for(c=1;c<=10000;++c)
if(33*a+42*b+53*c==46580)
printf("a=%d\t b=%d\t c=%d\t \n",a,b,c);
}
void main()
{
int a,b,c;
for(a=1;a<=10000;++a)
for(b=1;b<=10000;++b)
for(c=1;c<=10000;++c)
if(33*a+42*b+53*c==46580)
printf("a=%d\t b=%d\t c=%d\t \n",a,b,c);
}
追问
这个我在C里面运行不了
追答
我这没问题,并且结果正确。
看看你是否输入正确。。。操作正确。。注意标点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你用EXcel做了个VBA,你留个邮箱,我发给你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询