题目8:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
几个数相加有键盘控制。
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
import java.util.*;
public class TestP8{
public static void main(String[] args){
int n;
long b=0,a;
Scanner s = new Scanner(System.in);
System.out.print("输入数字a的值:");
a = s.nextInt();
System.out.print("输入相加的项数:");
n = s.nextInt();
int i = 0;
long sum = 0;
while(i < n){
b = b + a;
sum = sum + b;
a = a*10;
i++;
}
System.out.print("总数为:" + sum);
}
}
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
public class TestP9{
public static void main(String[] args){
int n = 1;
while(n < 10){
int b = 0;
for(int i = 1;i <= n/2; i++){
if(n % i == 0){
b = b + i;
}
}
if(n == b){
System.out.print("output the number:" + n);
}
n++;
}
}
}
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多
少米?第10次反弹多高?
public class TestP10{
public static void main(String[] args){
int n = 1;
double m = 100;
double sum = 0;
while(n <= 10){
sum = sum + m*2 ;
n++;
m = m/2;
}
sum = sum -100;
System.out.print("the sum is:" + sum);
System.out.print("the tenth is:" + m);
}
}
这个三个程序,没什么重要的东西,主要是从数学的角度来看问题就可以解决。大家从代码可以看出来,这次我主要用了while来做,其实也可以用for循环来做。看个人喜好