用逻辑控制编写伪程序代码:1、抢凳子游戏:10个人,9个凳子,每轮一个人抢不到凳子淘汰,然后拿掉一个凳子,继续下一轮,直到剩下最后一个人;
2、编写一个算法,当输入3个正整数,判断能组成三角形的类型:等边、等腰、不等边、非三角形(提示两边之和大于第三边)。伪代码中需要增加注释。
3、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米。希望大家能帮忙解决,学习了。
2、编写一个算法,当输入3个正整数,判断能组成三角形的类型:等边、等腰、不等边、非三角形(提示两边之和大于第三边)。伪代码中需要增加注释。
3、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米。希望大家能帮忙解决,学习了。
public static void fall(int height,int cnt){
if(height == 0){
System.out.println(cnt);
}else{
fall(height/2,cnt+height/2);
}
}
public static void computeTriangle(int a,int b,int c){
int cnt = 0;
if(a==b) cnt++;
if(a==c) cnt++;
if(b==c) cnt++;
if(a+b<c || a+c<b || c+b < a ){
cnt = 2;
}
System.out.println(Triangle.valueByIndex(cnt));
}
public static void main(String[] args){
C070704.fall(100, 0) ;
C070704.computeTriangle(3, 4, 4) ;
C070704.computeTriangle(3, 3, 3) ;
C070704.computeTriangle(3, 4, 5) ;
C070704.computeTriangle(3, 4, 6) ;
}
} enum Triangle {
Triganle, Isosceles , NonTriangle , Equilateral, ;
public static Triangle valueByIndex(int index) {
for (Triangle t : Triangle.values()) {
if (t.ordinal() == index) {
return t;
}
}
return null;
}
}
public static void fall(int height,int cnt,int aggregate,int limit){
if(height == 0 || cnt ==limit){
System.out.println(aggregate);
}else{
fall(height/2,++cnt ,aggregate+height/2,limit);
}
}
正整數:大於0的整數
public class ChouJiang {
public static void main(String[] args)
{
int n=10;//选号数的范围
int cj=9;//需要抽将几个数
int k=0;//变量K
Random random=new Random();
//创造 所选范围的数组
int []arr1=new int[n];
for(int m=0;m<arr1.length;m++)
{ k++;
arr1[m]=k;
}
//创建1-10个人数组
int []arr=new int[cj];
for(int i=0;i<arr.length;i++)
{
int P = random.nextInt(n);//在范围数组里随即选出 一个数
arr[i]=arr1[P];//在范围数组里随即选出 一个数
System.out.print(arr[i]+"没抢到凳子\r\n");
//从范围数组里把这个数删掉,最后面的不变
//比如:6没抢到凳子 1 2 3 4 5 7 8 9 10 10 7替换6 8替换7....,最后6没了
for(int j=P;j<arr1.length-1;j++)
{
arr1[j]=arr1[j+1];
}
n=n-1;//缩小取数范围
} System.out.print("最后剩下是"+arr1[0]+"\t");
}
}
* @author 严振
* @小球落下,每次再弹起的高度为之前的一半,再落下。求第10次落下时经过的路程。
*
* 算法:
* while(次数<10){
1 计算落下的高度
如果 为第一次落下
高度为起始高度
否则 上次弹起高度的一半
2 再弹起的高度为之前的一半
3 累加 } 输出
*/
public class BallDown { public static void main(String[] args) {
BallDown bd = new BallDown();
bd.countLength(10);
} public void countLength(int n) {
double sum = 0;
double start = 10.0;
double bound = 0; while (n > 0) {
sum += start;
bound = start / 2;
sum += bound;
n--;
start = bound; // 再落下的高度为上一次弹起的高度
}
System.out.println(sum);
}
}
第二题package com.walkman.forum_one;
/**
*
* @author 严振
* @输入三个正整数并判断其为何种三角形
* @简单算法如下:
* 三条边长度a,b,c
* if a=b=c
* 等边三角形
* else (a=b或者b=c或者a=c)
* 等腰三角形
* else(a+b>c)
* 不为三角形
*/
public class TriangleJudge { public static void main(String[] args) {
TriangleJudge tj_one = new TriangleJudge();
TriangleJudge tj_two = new TriangleJudge();
TriangleJudge tj_three = new TriangleJudge();
tj_one.judgeByNum(6, 6, 6);
tj_two.judgeByNum(5, 5, 4);
tj_three.judgeByNum(2, 3, 11);
} public void judgeByNum(int a, int b, int c) {
if(a==b && b==c && c==a){
System.out.println("等边三角形");
} else if(a==b || b==c || c==a) {
System.out.println("等腰三角形");
} else if((a+b) > c || (a+c)>b || (c+b) > a){
System.out.println("不为三角形");
}
}
}
第二题确实太简单了。第一题 思考思考再说。