第一题: ---------------------------- using System;namespace MyClass { class Class1 { private const int TotalMoney = 300; private const int TotalNumber = 100; public void Calc() { } public static void Main() { int Total = 0; for ( int i =1; i < 20; i ++)
for (int j = 1 ; j < (TotalMoney - i * 15) / 9; j++) { if ( i * 7 + 4 * j == 100) Console.WriteLine("公鸡:{0},母鸡:{1},小鸡:{2}",i,j,100-i-j); Total++; } Console.WriteLine("一共循环次数 {0}" ,Total); Console.ReadLine(); } } }这是我电脑上的计算结果公鸡:4,母鸡:18,小鸡:78 公鸡:8,母鸡:11,小鸡:81 公鸡:12,母鸡:4,小鸡:84 一共循环次数 291 ■■■■■ To teach a fish how to swim. ■■■■■
第二题,分析一下,程序都用不着: --------------------------------我们假定甲、乙、丙、丁、戊绳分别为a,b,c,d,e以及井深为s。于是根据题意,我们得到下面的方程组:2a+b=s——(1)3b+c = s——(2)4c+d= s——( 3)5d+e=s——(4)6e+a=s——(5) 2×(5)-(1)得: 12e - b = s——(6)3×(6)+(2)得:36e +c= 4s——(7)4×(7)-(3)得:144e - d = 15s——(8)5×(8)+(4)得:721e = 76s e= 76 / 721 * s由 (5) a = 265 / 721 * s 由 (1) b = 191 / 721 * s 由 (2) c = 148 / 721 * s 由 (3) d = 129 / 721 * s
一切都由 s控制, s只要由 721, 721 * 2, 721 * 3 .....循环下去,哈哈. ■■■■■ To teach a fish how to swim. ■■■■■
yarshray:为了不出现小数计算,在下把刘兄台的题目自己改了一下: 一只公鸡的价格是15元,一只母鸡的价格是9元,1只小鸡的1元 想用300元买100只鸡,问公鸡、母鸡、小鸡各可买几只?可以吗?■■■■■ To teach a fish how to swim. ■■■■■
公鸡 x 母鸡 y 小鸡 zx + y + z =100 5x + 3y + 1/3 * z = 100.化去z: 7x + 4y = 100这是一个二元一次不定方程ax+by=c (a、b、c∈Z)求整数解, 参考欧拉算式 http://www.srsoft.com.cn/study_garden_plot/drkt/drkt/gz_sx/ztyj/10/故 7x+4y=100的一般解是:x=-100+4ty=200-7t由于 0<x, y,z<100所以 0<-100+4t<100——(1) 0<200-7t<100——(2) 分别得到 25 < t < 50, 14又 2/7 < t < 28又4/7所以 25 < t < 28又4/7 则t = 26,27,28哈哈,只要3个循环就够了■■■■■ To teach a fish how to swim. ■■■■■
x+y+Z=100
5x+3y+1/3z=100
套上面你写的程序,就可以了!
----------------------------
using System;namespace MyClass
{ class Class1
{
private const int TotalMoney = 300;
private const int TotalNumber = 100; public void Calc()
{ }
public static void Main()
{
int Total = 0; for ( int i =1; i < 20; i ++)
for (int j = 1 ; j < (TotalMoney - i * 15) / 9; j++)
{
if ( i * 7 + 4 * j == 100)
Console.WriteLine("公鸡:{0},母鸡:{1},小鸡:{2}",i,j,100-i-j);
Total++;
}
Console.WriteLine("一共循环次数 {0}" ,Total);
Console.ReadLine();
}
}
}这是我电脑上的计算结果公鸡:4,母鸡:18,小鸡:78
公鸡:8,母鸡:11,小鸡:81
公鸡:12,母鸡:4,小鸡:84
一共循环次数 291
■■■■■ To teach a fish how to swim. ■■■■■
是什么意思,是说总钱数目吗?那根据题目的意思
好象是想用100元买100只鸡,问公鸡、母鸡、小鸡各可买几只?
我想应该是100吧!
15x+9y+z=300=TotalMoney
--------------------------------我们假定甲、乙、丙、丁、戊绳分别为a,b,c,d,e以及井深为s。于是根据题意,我们得到下面的方程组:2a+b=s——(1)3b+c = s——(2)4c+d= s——( 3)5d+e=s——(4)6e+a=s——(5)
2×(5)-(1)得: 12e - b = s——(6)3×(6)+(2)得:36e +c= 4s——(7)4×(7)-(3)得:144e - d = 15s——(8)5×(8)+(4)得:721e = 76s
e= 76 / 721 * s由 (5) a = 265 / 721 * s
由 (1) b = 191 / 721 * s
由 (2) c = 148 / 721 * s
由 (3) d = 129 / 721 * s
一切都由 s控制, s只要由 721, 721 * 2, 721 * 3 .....循环下去,哈哈.
■■■■■ To teach a fish how to swim. ■■■■■
一只公鸡的价格是15元,一只母鸡的价格是9元,1只小鸡的1元
想用300元买100只鸡,问公鸡、母鸡、小鸡各可买几只?可以吗?■■■■■ To teach a fish how to swim. ■■■■■
5x + 3y + 1/3 * z = 100.化去z: 7x + 4y = 100这是一个二元一次不定方程ax+by=c (a、b、c∈Z)求整数解,
参考欧拉算式
http://www.srsoft.com.cn/study_garden_plot/drkt/drkt/gz_sx/ztyj/10/故 7x+4y=100的一般解是:x=-100+4ty=200-7t由于 0<x, y,z<100所以 0<-100+4t<100——(1) 0<200-7t<100——(2)
分别得到 25 < t < 50, 14又 2/7 < t < 28又4/7所以 25 < t < 28又4/7
则t = 26,27,28哈哈,只要3个循环就够了■■■■■ To teach a fish how to swim. ■■■■■
不过方程中边界条件有点疏忽, 以至漏了一个答案.
(条件0<x,y,z<100 因改成 0=<x, y,z=<100)这里也有一个思路, 适合小学没有学过多元一次方程组的解法, 供大家看的玩. ( 我小时侯就是用这种方法解出 "100口砖,100人搬, 男搬4 ,女搬3 ,两个小孩抬一口砖)1. 假设: 把所有的公鸡看成母鸡, 再把所有的母鸡看成小鸡-->100只鸡全部是小鸡.2. 100只小鸡只能值(1/3 * 100 = 100/3) 元, 与实际相差 ( 100- 100/3 =200/3 元) , 由于每一只母鸡看成小鸡减少了( 3-1/3= 8/3 ) 元, 所以我们错把[(200/3) / (8/3) = 25]只母鸡看成小鸡.
得出第一个答案: 小鸡 75只, 母鸡 25 只, 公鸡 0 只.在已经得出的答案继续假设公鸡不为0 ,那么
(1) 母鸡+小鸡的总数量必须减少
(2) 不管是把母鸡看成公鸡,还是小鸡看成公鸡, 结果的价值会大于100元.=>价值增加, 只能用增加小鸡的数量去抵消已增加的值.
=>如果要增加公鸡数量,必须增加小鸡数量,减少母鸡数量由于1只母鸡-->公鸡, 增加 (5-3=2) 元,
1只母鸡-->小鸡, 减少 8/3 元.因此公鸡和小鸡增加的比率是 8/3 : 2 = 4 : 3
剩下的答案依次是:
第2个答案
母鸡 25- 7*1 = 18
公鸡 4*1 = 4
小鸡 75+ 3*1 =78 第3个答案
母鸡 25- 7*2 = 11
公鸡 4*2 = 8
小鸡 75+ 3*2 = 81 第4个答案
母鸡 25- 7*3 = 4
公鸡 4*3 = 12
小鸡 75+ 3*3 = 84
在这里最后的演出!完美我永远的朋友----TheAres