禁止百度收录的网站,网站如何横屏,南通网站建设兼职,给企业做网站推广好么?目录#xff1a;
1、百钱买百鸡
2、韩信点兵
1#xff09;概述 2#xff09;正常取余算法 3#xff09;循环算法 1、百钱买百鸡
我国古代《算经》中的“百钱买百鸡”问题#xff1a;
鸡翁一#xff0c;值钱五#xff1b;鸡母一#xff0c;值钱三#xff1b;鸡…目录
1、百钱买百鸡
2、韩信点兵
1概述 2正常取余算法 3循环算法 1、百钱买百鸡
我国古代《算经》中的“百钱买百鸡”问题
鸡翁一值钱五鸡母一值钱三鸡雏三值钱一百钱买百鸡则翁、母、雏各几何
分析
用数学方法解决。设鸡翁公鸡x只鸡母母鸡y只鸡雏鸡仔z只可得到方程组如下 作为限制条件应该有
0 ≤ x ≤ 20鸡翁不可能超过20只均为正整数20只 是100钱0 ≤ y ≤ 33鸡母不可能超过33只均为正整数33只是99钱0 ≤ z ≤ 100鸡雏不可能超过100只均为正整数必须为3的整倍数
运算量不大可以利用三重循环得到结果。
#include stdio.h
#include math.hint accord( int i, int j, int k )
{if( 5*i 3*j k/3 100 k%3 0 ijk 100 )return 1; //如果是百钱百鸡返回1正确的结果elsereturn 0; //如果不是返回0
}int main(void)
{int i, j, k; //i:鸡翁数; j:鸡母数; k:鸡雏数printf(100yuan for 100 chick:\n);for( i 0; i 20; i )for( j 0; j 33; j )for( k 0; k 100; k )if( accord( i, j, k ) ){printf(cock:%d\n,i);printf(hen:%d\n,j);printf(chicken:%d\n,k);}return 1;
}C-Free验证代码 C-Free代码下载地址有趣的算法合集-1百钱买百鸡。
2、韩信点兵
1概述
韩信带1500名兵士打仗战死四五百人站3人一排多出2人站5人一排多出4人站7人一排多出6人。韩信马上说出人数1049。
首先我们来了解一下同余的概念。a和b关于c同余意思是说a除以c和b除以c的余数相同。例如8÷5 1余33÷5 0余3所以8和3关于5同余写作8 ≡ 3(mod 5)其中mod读作“模”。而且由于3小于5所以3本身就是3除以5的余数因此8 ≡ 3(mod 5)也可以理解为8除以5的余数是3。
这样韩信点兵问题就可以表示为数学语言了。有一个数字x除以3余2除以5余3除以7余2 那么这个数字是多少数学写法是 对于这个问题最基本的解法是穷举法就是把满足每个条件的数字写出来然后找到相同的数字。
除以3余数是2的数字有2、5、8、11、14、17、20、23、26…
除以5余数是3 的数字有3、8、13、18、23、28…
除以7余数是2的数字有2、9、16、23、30…我们发现满足三个条件的第一个数字是23。所以23是这个问题的一个解。
但是这个问题的解并不是唯一的。3、5、7彼此互质它们的最小公倍数是105。也就是说105除以3、除以5或者除以7都没有余数。如果一个数字x是满足要求的那么在x上加上几个105都不会改变它对3、5、7的余数。比如23是满足要求的那么23105 128也是满足要求的23210 233也是满足要求的。
所以这个问题最后的解就是23105n其中n 0123…
2正常取余算法
//正常取余算法
#include stdio.h
#include math.hint main(void)
{int x, y, z;int i;scanf(%d%d%d, x, y, z);for (i 0; i 1500; i){if (i%3 x i%5 y i%7 z){printf(%d\n, i);}}if (i 10000)printf(No answer);
}
C-Free验证代码 3循环算法
//循环算法
#include stdio.h
int main(void)
{int a,b,c;int x,y,z,j;int i;int f0;scanf(%d%d%d,a,b,c);for(i3;i34;i){int sum3*ia;for(j2;j20;j){if(((j*5)b)sumf0){for(z1;z15;z){if(((z*7)c)sumf0){printf(%d,sum);f1;break;}} }if(f1)break;}if(f1)break;}if(f0)printf(No answer);return 0;
}
C-Free验证代码 C-Free代码下载地址有趣的算法合集-2韩信点兵。 路虽远行则将至事虽难做则可成。觉得不错动动发财的小手点个赞哦