求帮忙写程序:(这些题目我自己能分析,就是不会写出来,有些题关于数学的,本人数学很丢人。刚学完二重循环,请大家尽量用我能看懂的方法写,最好能加点注释,老师给了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
------解决方案--------------------------------------------------------
- Java code
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; }}
------解决方案--------------------------------------------------------
- Java code
// 题目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;