java程序”百钱买百鸡“

合集下载

java编程题目

java编程题目

50.程序功能:求满足以下条件的(a,b,c)的组数:(1) 1/(a^2)+1/(b^2)=1/(c^2) ;(2)a>b>c ;(3)a+b+c<100。
51.程序功能:求个位数是6,且能被3整除的所有四位数之和。
52.程序功能:有一堆零件(零件个数不超过1000),如果分成4个零件一组余2个;7个一组余3个; 9个一组余5个。求这堆零件的个数有几种可能。
33.程序功能:计算y=1+2/3+3/5+4/7+…+n/(2*n-1)(n=50), 要求:按四舍五入的方式精确到小数点后第二位。
34.程序功能:求当N=20时,1/(1*2)+1/(2*3)+1/(3*4)+….+1/(N*(N+1))的值。要求:按四舍五入的方式精确到小数点后第二位。
74.用sin(x)≈x-x^3/3!+x^5/5!-……+(-1)^(n-1)*(x^(2n-1))/(2n-1)!的公式求近似值,直到最后一项绝对值小于0.00001为止。设x=7。
69.宴会上一共有1225次握手,设每一位参加宴会的人对其他与会人士都有一样的礼节,那么与会人士有多少?
70.金星和地球在某一时刻相对于太阳处于某一确定位置,已知金星绕太阳一周为225日,地球绕太阳一周为365日,问两个行星至少经过多少日仍同时回到原来的位置上?
71.求表达式e^x ≈1+x+x^2/2!+x^3/3!+x^4/4!……+x^n/n!的近似值,设x=9,n=25;
25.程序功能:若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。求[1,200]之间有多少个多因子完备数。

PYTHON中百钱买百鸡问题

PYTHON中百钱买百鸡问题

PYTHON中百钱买百鸡问题问题:中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?在PYTHON中编程实现将所有可能的方案输出。

问题分析:根据题意设公鸡、母鸡和雏鸡分别为cock,hen和biddy,如果100钱全买公鸡,那么最多能买20只,所以cock的范围是大小等于0小于等于20;如果全买母鸡那么最多能买33只,所以hen的范围是大于等于0小于等于33;如果100钱全买小鸡,那么根据题意最多能买99只(小鸡的数量应小于100且是3的倍数)。

在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下3种:(1)、所买的三种鸡的钱数总和为100;(2)、所买的三种鸡的数量之和为100;(3)、所买的小鸡的数量必须是3的倍数。

程序代码:for cock in range(0,20+1): #鸡翁范围在0到20之间for hen in range(0,33+1): #鸡母范围在0到33之间for biddy in range(3,99+1): #鸡雏范围在3到99之间if (5*cock+3*hen+biddy/3)==100:#判断钱数是否等于100if (cock+hen+biddy)==100: #判断购买的鸡数是否等于100if biddy%3==0: #判断鸡雏数是否能被3整除print ("鸡翁:",cock,"鸡母:",hen,"鸡雏:",biddy) #输出程序运行结果:鸡翁: 0 鸡母: 25 鸡雏: 75鸡翁: 4 鸡母: 18 鸡雏: 78鸡翁: 8 鸡母: 11 鸡雏: 81鸡翁: 12 鸡母: 4 鸡雏: 84。

百钱买百鸡解题思路数学

百钱买百鸡解题思路数学

百钱买百鸡这个题目是一个著名的数学难题,它要求用一百个钱币购买一百只鸡,其中公鸡x只,母鸡y只,小鸡z只,且x+y+z=100,且5x+3y+z/3=100。

使用现代计算机技术的优势,可以通过暴力穷举来解决这个问题。

小朋友也可以在Scratch编程中,通过引入变量和穷举法来实现这一过程。

首先,设置三个变量x、y和z,它们分别代表公鸡、母鸡和小鸡的数量。

设置一个计数器,用于显示穷举的执行时间。

然后,开始穷举。

从x的最小值开始,即0,依次增加到最大值,即100/5,检查是否满足x+y+z=100。

如果满足,继续检查是否满足5x+3y+z/3=100。

如果都满足,则表示找到了一个解。

在穷举过程中,可以使用计时器显示穷举的执行时间,以便学生了解求解过程的耗时情况。

最后,输出找到的所有解,包括公鸡、母鸡和小鸡的数量。

这些解可能有四种情况:公鸡0只,母鸡25只,小鸡75只;公鸡4只,母鸡18只,小鸡78只;公鸡8只,母鸡11只,小鸡81只;公鸡12只,母鸡4只,小鸡84只。

通过这种方式,可以使用Scratch编程解决这个数学难题,并且通过计时器显示执行时间,了解求解过程的耗时情况。

java代码练习

java代码练习

java代码练习/** 百钱买百鸡*/public class Chook {/*** 百钱买百鸡*/public static void main(String[] args) {int way = 1; //买法int k = 0; //雏鸡数for(int i=1;i<=20;i++){ //公鸡数for(int j=1;j<=33;j++){ //母鸡数k = 100-i-j; //一共100只鸡if(k%3 == 0 && (5*i+3*j+k/3 == 100)){//雏鸡数是3的倍数,总计100文钱System.out.print("[买法" + way++ + "] ");System.out.println("公鸡: " +i+ " 母鸡:" +j+ " 雏鸡:" +k);}}}}}/** 打印9*9乘法表*/public class Multiplication {public static void main(String[] args) {int i, j; // 循环变量for (i = 1; i <= 9; i++){ // 外层循环控制被乘数for (j = 1; j <= i; j++){ // 内层循环控制乘数System.out.print(i+"*"+j+"="+(i*j)+"\t");}System.out.println(); // 打印一行后换行}}}/*** LookPrice.java 根据编号显示对应的商品价格*/public class LookPrice {public static void main(String[] args) {String name = ""; // 商品名称double price = 0; // 商品价格int goodsNo; // 商品编号/* 打印产品清单*/System.out.println("*****************************************" );System.out.println("请选择购买的商品编号:\n");System.out.println("1.T恤 2. 网球鞋 3. 网球拍");System.out.println("****************************************\n ");Scanner input = new Scanner(System.in);String answer = "y"; // 标识是否继续while (answer.equals("y")) { // con的值为"y"时执行循环体System.out.print("请输入商品编号:"); // 提示输入商品编号goodsNo = input.nextInt(); // 从键盘获取商品编号switch (goodsNo) {case 1:name = "T恤";price = 245;break;case 2:name = "网球鞋";price = 570;break;case 3:name = "网球拍";price = 320;break;}System.out.println(name + "\t" + "¥" + price); // 输出商品名称和价格System.out.print("\n是否继续(y/n)");answer = input.next(); // 用户再次输入是否继续的信息}System.out.println("\n程序结束!");}}/*** LoginMenu.java 购物菜单选择*/public class LoginMenu {/*** 显示我行我素购物管理系统的登录菜单*/public static void main(String[] args) {System.out.println("\n\n\t\t\t欢迎使用我行我素购物管理系统1.0版\n\n");System.out.println("\t\t\t\t 1. 登录系统\n\n");System.out.println("\t\t\t\t 2. 退出\n\n");System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");System.out.print("请选择,输入数字:");/* 从键盘获取信息,并执行相应操作---新加代码*/Scanner input = new Scanner(System.in);int num = input.nextInt();switch (num) {case 1:/* 显示系统主菜单*/System.out.println("\n\n\t\t\t\t欢迎使用我行我素购物管理系统\n");System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");System.out.println("\t\t\t\t 1. 客户信息管理\n");System.out.println("\t\t\t\t 2. 购物结算\n");System.out.println("\t\t\t\t 3. 真情回馈\n");System.out.println("\t\t\t\t 4. 注销\n");System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");System.out.print("请选择,输入数字:");break;case 2:/* 退出系统*/System.out.println("谢谢您的使用!");break;default:System.out.println("输入错误。

“百钱买百鸡”问题的C语言算法分析

“百钱买百鸡”问题的C语言算法分析

“百钱买百鸡”问题的C语言算法分析Abstract:As a process-oriented programming language,C programming language is one of the most classic and popular computer programming languages with the characteristics of the assembly language and the high-level language.It is not only the first choice for the people who begin to learn computer programming,but also the basis for other computer courses and software development.As a difficult point in C Programming Language learning,the loop statement can be used to solve many practical problems of regularly repetitive operation.Taking the case of "spending 100 dollars on 100 chickens",the paper implements design,analysis and optimization,and finally proposes the optimal algorithm.Keywords:C programming language;loop statement;spending 100 dollars on 100 chickens1 引言(Introduction)计算机算法设计是计算机专业学习的核心专业内容,算法设计对于培养一个人的逻辑思维能力具有重要的作用,能进行有效的算法设计是对一个计算机学者的基本要求。

c++、python、vb求解百钱百鸡问题

c++、python、vb求解百钱百鸡问题

我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱三;鸡母一,值钱二;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个三块钱,母鸡一个二块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?题目分析如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。

设公鸡x 只,母鸡y 只,小鸡z 只,得到以下方程式组:A:3x+2y+1/3z = 100B:x+y+z = 100C:0 <= x <= 100D:0 <= y <= 100E:0 <= z <= 100如果用解方程的方式解这道题需要进行多次猜解,因此我们用穷举法的方式来解题。

1.C++语言#include<iostream>using namespace std;int main(){int i,j,k,x,y,z;for (i=0;i<=33;i++)for(j=0;j<=50;j++)for(k=0;k<=100;k++)if((3*i+2*j+k/3==100)&&(i+j+k==100)&&k%3==0)cout<<i<<" "<<j<<" "<<k<<endl;return 0;}2.Python语言for i in range(33):for j in range(50):for k in range(100):if (3*i+2*j+k/3==100) and (i+j+k==100) and (k%3==0):print(i,j,k)3.VB语言Dim a As Integer, b As Integer, c As IntegerFor a = 0 To 33For b = 0 To 50For c = 0 To 100If 3 * a + 2 * b + 1 / 3 * c = 100 And a + b + c = 100 ThenPrint "公鸡" & a, "母鸡" & b, "小鸡" & cEnd IfNext cNext bNext a。

JAVA编程-百钱买百鸡详解

JAVA编程-百钱买百鸡详解

题目:我国古代数学家张丘建成在《算经》中出了一道"百钱买百鸡"的问题,题意是:五文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡,现在用100文钱买一百只鸡,那么各有公鸡、母鸡、雏鸡多少只?思路分析1:百钱买百鸡问题,公鸡五文钱1只,母鸡3文钱一只,小鸡1文钱3只,问100元买100只鸡, 各有公鸡、母鸡、雏鸡多少只?假设买公鸡x 只,买母鸡y 只,买小鸡z 只,那么根据已知条件列方程,得出:(1)、 x+y+z=100 //计算鸡的数量,公鸡x+母鸡y+小鸡z =100只鸡(2)、 5x+3y+Z 3 =100 或者写成 5x+3y+13z=100 //计算100元能买多少只鸡 说明:根据题意小鸡1文钱3只,表达式中13 z 也就是Z 3,只是写法不同,都是表示一只鸡要多少钱?(3)、 z=100-x-y //计算小鸡的数量把以上3个公式整理后得到:5x+3y+100-x-y 3=100 然后整个公式都乘以3后: 3×5x+3×3y+3×100-x-y 3=100×3 计算后得到: 15x+9y+100-x-y=300把左边式子整理得到: 15x-x +9y -y +100 =300把左边式子X 和Y 减去得到: 14x+8y+100=300把左边整数放右边,整理得到: 14x+8y=300-100计算后得到: 14x+8y=200继续整理公式,都除以2后:14x 2 +8y 2 =2002计算后得到: 7x+4y=100根据上面公式得到y 整理得到:4y=100-7x然后整个公式都除以4后: 4y 4 = 100-7x 4整理得到y(母鸡数量)的公式:y = 100-7x 4;从右边式中看出4和100都是4的倍数: 这样拆分写是为了让读者通俗易懂: y =1004 - 7x 4 整理公式得到: y =25-74 x 也可以写成 y =25-7x 4由于y 是表示母鸡数量,它一定是自然数(自然数是整数(自然数包括正整数和零),但整数不全是自然数,例如:-1 -2 -3......是整数 而不是自然数。

自考教材《java语言程序设计(一)》第二章习题解答

自考教材《java语言程序设计(一)》第二章习题解答

第二章习题解答2.1 Java的字符能参加算术运算吗?可以。

(1)字符与整型数据运算,结果为整型数据,只能附给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;(2)字符与字符运算,结果为字符型数据,可以直接附给字符型或整型变量。

2.2 占字节多的变量能直接赋值给占字节少的变量么?答:不能直接赋值,需要强制类型转换。

2.3 试用Java语言表达式描述以下数学计算式或逻辑条件:1)3)34(rV⋅=π解:V = (4.0/3)*Math.PI*Math.pow(r,3);2))11(121RRR+=解:R = 1.0 / (1.0/R1+1.0/R2);3)635++=xxy解:y = Math.pow(x,5) + Math.pow(x,3) + 6;4)221RMMF⋅=解:F = 1.0 * M1 * M2 / (R * R);5)()()|2/cos|/sin xaxx⋅+π解:Math.sin(x) / a * x + Math.abs( Math.cos(π * x / 2) );6)0 < a <10解:a > 0 && a < 107) 条件 x=1 与 y=2 有且只有一个成立.解:( x == 1 && y != 2) || (x != 1 && y == 2)2.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。

1);++*=aab解:a=5 ; b=16;2);aac+++=;解:a=5 ; c=102.5编写一个程序,示意前缀++与后缀++的区别,前缀--与后缀--的区别。

分析:其实只是在程序中简单地使用这两类自增、自减运算符就可以了,打印出运算前后的值就可以了,同学们可以自行写出,这里只给出参考程序:public class Xt25 {public static void main(String[] args) {int i=7,j=5,k=10,n=8,x,y;System.out.print("变量i的值为"+i);x=i++;System.out.println(",执行赋值运算x=i++后,x的值为"+x+",i的值为"+i);//提示注意print和println的差别,并注意本题整体输入效果!!!System.out.print("变量j的值为"+j);y=++j;System.out.println(",执行赋值运算y=++j后,y的值为"+y+",j的值为"+j);System.out.print("变量k的值为"+k);x=k--;System.out.println(",执行赋值运算x=k--后,x的值为"+x+",k的值为"+k);System.out.print("变量n的值为"+n);y=--n;System.out.println(",执行赋值运算x=--n后,y的值为"+y+",n的值为"+n);}}程序运行结果:变量i的值为7,执行赋值运算x=i++后,x的值为7,i的值为8变量j的值为5,执行赋值运算y=++j后,y的值为6,j的值为6变量k的值为10,执行赋值运算x=k--后,x的值为10,k的值为9变量n的值为8,执行赋值运算x=--n后,y的值为7,n的值为72.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
publicstaticvoidmain(String[] args) {
intm,n,k,i=0;
for(m=0;m<=20;m++)
for(n=0;n<=33;n++)
for(k=0;k<=300;k+=3)
if(5*m+3*n+k/3==100&&m+n+k==100)
i++;
System.out.println("百钱买百鸡共有 "+i+" 种方法");
尝试分别用三层循环、两层循环、一层循环编程实现“百钱买百鸡”问题。母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只,现在有百钱欲买百鸡鸡-三层循环
//母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只
//母鸡m只,公鸡n只,小鸡k只
publicclassBaiQianMaiBaiJi3 {
if(5*m+3*n<=100&&m+n+(100-5*m-3*n)*3==100)
i++;
System.out.println("百钱买百鸡共有 "+i+" 种方法");
}
}
一层循环
//百钱买百鸡-一层循环
//母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只
//母鸡m只,公鸡n只,小鸡k只 4m+2n=2(k/3);m+n+k=100
}
}
两层循环
//百钱买百鸡-两层循环
//母鸡5分钱一只,公鸡三分钱一只,小鸡一分钱三只
//母鸡m只,公鸡n只
publicclassBaiQianMaiBaiJi2 {
publicstaticvoidmain(String[]args) {
intm,n,i=0;
for(m=0;m<=20;m++)
for(n=0;n<=33;n++)
publicclassBaiQianMaiBaiJi1 {
publicstaticvoidmain(String[]args) {
intm,i=0;
for(m=0;m<=20;m++)
{
if((100-7*m)>0&&(100-7*m)%4==0)//&&k=3(100+m)/4,(100+m)%4==0
i++;
}
System.out.print("百钱买百鸡共有 "+i+" 种方法");
}
}
相关文档
最新文档