6.【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月20日
* @description:[程序6]输入两个正整数m和n,求其最大公约数和最小公倍数。
*/
public class CommonFactor { /**
* @param numMin最小公倍数
* @param numMax最大公因数
*/
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String ans = null;
do{ System.out.println("请输入两个数:number1,number2(number1>=number2)");
int number1 = reader.nextInt();
int number2 =reader.nextInt();
if(number1 < number2){
System.out.println("输入的顺序错误,是否重新输入:(y/n)");
ans = reader.next();
}else{
int numMax = printCommon(number1,number2);
int numMin = number1*number2/numMax;
System.out.println("最大公因数是:"+numMax+"\n最小公倍数是:"+numMin);
return;
}
}while("y".equals(ans)); } /**
* @param number1 除数
* @param number2 被除数(之后有作为被除数)
* @param number3作为余数
* @param number4作为商(之后作为除数)
*/
public static int printCommon(int number1, int number2) {
int number3,number4;
do{
number3 = number1%number2;
number4 = number1/number2;
number1 = number2;
number2 = number4; }while(number3!=0);
return number4;
} }
7.【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
package com.niit.homework1; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; /**
* @author: Annie
* @date:2016年5月23日
* @description:【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
*/
public class CalculateNum { public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一行文本:");
String str = br.readLine();
int countNum = 0;//统计数字的个数
int countChar = 0;//统计英文字母的个数
int countSpace = 0;//统计空格的个数
int countOthers = 0;//统计其它字符的个数
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);//返回i索引下的字符
if (c >= '0' && (int) c <= '9') {
countNum++;
} else if ((c >= 'a' && c <= 'z')||(c >= 'A' && c <= 'Z')) {
countChar++;
} else if (c == ' ') {
countSpace++;
} else{
countOthers++;
}
}
System.out.println("数字个数:"+countNum);
System.out.println("英文字母个数:"+countChar);
System.out.println("空格个数:"+countSpace);
System.out.println("其他字符个数:"+countOthers);
}
}
8.【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月20日
* @description:【程序8】求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
* 几个数相加有键盘控制。 */
public class Sum { /**
* @param args
*/
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入要先加的数和相加的次数(number1,number2)");
int number1 = reader.nextInt();
int number2 = reader.nextInt();
Sum s = new Sum();
System.out.println(s.printSum(number1,number2));
} /**
* @param number1代表相加的数
* @param number2代表先加的个数
*/
private int printSum(int number1, int number2) {
int[] arr = new int [number2];
int sum =0;
if(number2 ==1 ){
return sum = number1;
}else{
for (int i = 1; i < number2; i++) {
arr[0]=number1;
arr[i]=arr[i-1]*10+arr[0];
System.out.println(arr[i]);
sum +=arr[i]; }
return sum+number1;
}
} }
9.【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完
数。
10.题目:一球从100米高度*落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多
少米?第10次反弹多高?
package com.niit.homework1; /**
* @author: Annie
* @date:2016年5月20日
* @description:【10】.一球从100米高度*落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多
少米?第10次反弹多高? */
public class FallBall {
public static void main(String[] args) {
FallBall fb = new FallBall();
fb.printcount(100); } /**
* @param i代表100米高空
* @param count代表每次反弹后的高度是原来的一半
* @param sum 代表总体经过的路程
*/
private void printcount(double i) {
double count=i,sum = 0;
for (int j = 0; j <10; j++) {
count = count/2;
sum = sum +count;
}
sum = sum +i;
System.out.println("球经过10次的反弹后,共经过了"+sum+"米的路程\n"+"第十次反弹的高度是:"+count);
} }