Java练习题8.1
1、输入6个整数,求出它们的和以及最大值并输出。
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
System.out.println("请输入6个整数:");
Scanner sc=new Scanner(System.in);
int n1=sc.nextInt();
int n2=sc.nextInt();
int n3=sc.nextInt();
int n4=sc.nextInt();
int n5=sc.nextInt();
int n6=sc.nextInt();
int sum,max=n1;
sum=n1+n2+n3+n4+n5+n6;
if(n2>max)
max=n2;
if(n3>max)
max=n3;
if(n4>max)
max=n4;
if(n5>max)
max=n5;
if(n6>max)
max=n6;
System.out.println("sum="+sum+"max="+max);
}
}
2、输入一个三位的整数,判断其是否为水仙花数,如果是,则将该数输出。
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex2 {
public static void main(String[] args) {
System.out.println("请输入一个三位整数:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int b = i/100%10;
int s = i/10%10;
int g = i/1%10;
if(g*g*g+s*s*s+b*b*b==i)
{
System.out.println(i+"是水仙花数");
}
else
{
System.out.println(i+"不是水仙花数");
}
}
}
3、输出1000以内所有的水仙花数。
package com.shangjiti.aoian;
public class Ex3 {
public static void main(String[] args) {
int i;
int ge,shi,bai;
for(i=100;i<=1000;i++)
{
ge=i%10;
shi=i/10%10;
bai=i/100;
if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i)
System.out.println(i);
}
}
}
4、输入一个整数,判断其是否是完数,如果是,则输出YES,否则输出NO。
(提示:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3)
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex4 {
public static void main(String[] args) {
System.out.println("请输入一个正整数:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int i;
int sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)
{
sum=sum+i;
}
}
if(n==sum)
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
}
}
5、输出1000以内的所有完数。
package com.shangjiti.aoian;
public class Ex5 {
public static void main(String[] args) {
int i,n,sum;
for(n=1;n<=1000;n++)
{
sum=0;
for(i=1;i<n;i++)
{
if(n%i==0)
sum=sum+i;
}
if(sum==n)
System.out.println(n);
}
}
}
6、输入一个大于3的整数,判断其是否为素数,输出判断结果“YES”或“NO”
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex6 {
public static void main(String[] args) {
System.out.println("请输入1个大于3的整数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int a=0;
int i;
for(i=2;i<num;i++)
{
if(num%i==0)
{
a++;
}
}
if(a==0)
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
}
}
7、输出200-300之间所有的素数
package com.shangjiti.aoian;
public class Ex7 {
public static void main(String[] args) {
int i,n;
for(i=200;i<=300;i++)
{
for(n=2;n<i;n++)
{
if(i%n==0)
break;
}
if(n==i)
System.out.println(n);
}
}
}
第二部分:循环结构的应用:
1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
package com.shangjiti.aoian;
public class Ex8 {
public static void main(String[] args) {
int i;
double h=50,s=100;
for(i=2;i<=10;i++)
{
s=s+2*h;
h=h/2;
}
System.out.println("第十次反弹高度为:"+h);
System.out.println("第10次落地共经过的米数:"+s);
}
}
2、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
package com.shangjiti.aoian;
public class Ex9 {
public static void main(String[] args) {
int day,s=1;
for(day=9;day>0;day--)
{
s=2*(s+1);
}
System.out.println("第一天共摘了"+s+"个桃子");
}
}
3、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比的名单,a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
package com.shangjiti.aoian;
public class Ex10 {
public static void main(String[] args) {
char i,j,k;
for(i='x';i<='z';i++)
{
for(j='x';j<='z';j++)
{
if(i!=j)
{
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k) {
if(i!='x'&&k!='x'&&k!='z')
{
System.out.println("a与"+i);
System.out.println("b与"+j);
System.out.println("c与"+k);
}
}
}
}
}
}
}
}
能力不足,水平有限,如有错误,感谢指正