求帮忙写程序
求帮忙写程序:(这些题目我自己能分析,就是不会写出来,有些题关于数学的,本人数学很丢人。刚学完二重循环,请大家尽量用我能看懂的方法写,最好能加点注释,老师给了40道题,多半都写不出来,希望借鉴大家的方法,再去理解。)谢谢大家!
1.我国古代数学家张邱建在《算经》中出了一道“百钱买白鸡”的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
2。彩票生成系统:生成一组随机的双色球彩票(一共7个数字,前六位随机范围为1-33,最后一位范围1-16),使用数组保存生成的每次随机数。要求数组的前六位不能出现重复的数字。提示:使用数组和二重循环。
3.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:(a>b)?a:b这是条件运算符的基本例子。
4.题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
5.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。程序分析:请抓住分子与分母的变化规律。
6.题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。
7.题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
8.题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),显示出总分最高的学生的学生号、姓名、三门课的平均成绩。(不考虑最高分
9.题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
10.题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
[解决办法]
import java.util.Random;public class Test{ public static void main(String[] args) { // 1. 百元买百鸡 // 5X + 3Y + Z/3 = 100; // X + Y + Z = 100; -> // 15X + 9Y + (100 - X - Y) = 300; -> // 14X + 8Y = 200; -> // 7X + 4Y = 100; for (int i = 0; i < 100 / 4; i++) { if ((100 - i * 4) % 7 == 0) { int x = (100 - i * 4) / 7; int y = i; int z = 100 - x - y; System.out.println(x + ":" + y + ":" + z); } } // 2.彩票 int[] caipiao = new int[7]; for (int i = 0; i < 7; i++) { caipiao[i] = -1; } for (int i = 0; i < 6; i++) { int ran = new Random().nextInt(33) + 1; while (haveSame(caipiao, ran)) { ran = new Random().nextInt(33) + 1; } caipiao[i] = ran; } caipiao[6] = new Random().nextInt(16) + 1; // 打印 for (int i : caipiao) { System.out.println(i); } } public static boolean haveSame(int[] caipiao, int ran) { for (int i = 0; i < 6; i++) { if (caipiao[i] == ran) { return true; } } return false; }}
[解决办法]
// 题目4 public static void main(String args[]) { int m = 0; int s = 0; int i = 0; int a[] = new int[1000]; for (s = 2; s < 1000; s++) { m = 0; for (i = 1; i < s; i++) { if (s % i == 0) a[i - 1] = i; else a[i - 1] = 0; } for (i = 1; i < s; i++) m = m + a[i - 1]; if (m == s) System.out.println(s); } }
[解决办法]
import java.util.Random;
public class Test
{
public static void main(String[] args)
{
// 1. 百元买百鸡
// 5X + 3Y + Z/3 = 100;
// X + Y + Z = 100; ->
// 15X + 9Y + (100 - X - Y) = 300; ->
// 14X + 8Y = 200; ->
// 7X + 4Y = 100;
for (int i = 0; i < 100 / 4; i++)
{
if ((100 - i * 4) % 7 == 0)
{
int x = (100 - i * 4) / 7;
int y = i;
int z = 100 - x - y;
System.out.println(x + ":" + y + ":" + z);
}
}
// 2.彩票
int[] caipiao = new int[7];
for (int i = 0; i < 7; i++)
{
caipiao[i] = -1;
}
for (int i = 0; i < 6; i++)
{
int ran = new Random().nextInt(33) + 1;
while (haveSame(caipiao, ran))
{
ran = new Random().nextInt(33) + 1;
}
caipiao[i] = ran;
}
caipiao[6] = new Random().nextInt(16) + 1;
// 打印
for (int i : caipiao)
{
System.out.println(i);
}
}
public static boolean haveSame(int[] caipiao, int ran)
{
for (int i = 0; i < 6; i++)
{
if (caipiao[i] == ran)
{
return true;
}
}
return false;
}
}
[解决办法]
第一题
/**
分别 把 公鸡母鸡雏鸡 设为 x,y,z
可列式子: 5x+3y+3/z=100;
x+y+z=100;
消去 z 得:7x+4y=100;
*/
public class bussiness {
int x,y,z;
public void jisuan(){
for(x=1;x<=20;x++){
for(y=1;y<=33;y++){
int t=7*x+(4*y);
if(t==100)
{ z=100-x-y;
this.write();
}
}
}
}
public void write(){
System.out.println("公鸡的数量是 = "+x+" "+"母鸡的数量数 = "+y+" "+"雏鸡的数量数 = "+z);
}
public static void main(String args[]){
bussiness b=new bussiness();
b.jisuan();
// b.write();
}
}
[解决办法]
看了回复才发现是java区的帖子。
#include <stdio.h>void main(){ int a,b,c; for (a=1;a<20;a++) {for (b=1;b<33;b++) {for (c=1;c<100;c++) { if (100==(a+b+c)&&(100==(5*a+3*b+c/3))) { printf("公鸡:%d只;母鸡:%d只;雏鸡:%d只\n",a,b,c); } } } }}