- 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3
编程找出1000以内的所有完数。
public class Demo1
{
public static void main(String[] args)
{
//求1000以内的所有完数
int sum=0; //统计完数个数
for(int i=1;i<=1000;i++)
{
int x=0;
for(int a=1;a<i;a++)
{
if(i%a==0) //求i的因子
{
x+=a; //因子加和
}
}
if(x==i) //判断因子加和是否和i相等
{
System.out.println(i);
sum++;
}
}
System.out.println(sum);
}
}
运行结果:
2. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
求它在第10次落地时,共经过多少米?第10次反弹多高?
public class Demo2
{
public static void main(String[] args)
{
//小球下落问题
double h=100;
double sum=0;
for(int i=1;i<=10;i++)
{
sum+=h;
h=h*0.5;
}
System.out.println(100+sum);
System.out.println(h);
}
}
运行结果:
3. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
public class Demo3
{
public static void main(String[] args)
{
//三位数
int i=0;
int sum=0; //统计个数
for(int a=1;a<=4;a++)
{
for(int b=1;b<=4;b++)
{
for(int c=1;c<=4;c++)
{
if(a!=b&&a!=c&&b!=c)
{
i=a*100+b