清明节


难度跟我们之前的练习完全不是一个等级的,请耐心思考。你有信心搞定吗?

1. 对两个整数变量的值进行互换,请写出三种实现方式

a) 提示:数学运算,位运算,第三方变量

 

2. 设计一个方法来计算 n+(n-1)+(n-2)+....+3+2+1的值

    注意:其中n的值由用户输入,

例如:如果输入的数是8,则计算8+7+6+5+4+3+2+1的值,计算结果应该是36

代码如下:

import java.util.Scanner;

public class leiJia2{

public static int leiJia(int n){

int sum = 0;

for(int i=1;i<=n;i++){

sum += i;

}

return sum;

}

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.println("请输入n的值");

int n = sc.nextInt();

int result = leiJia(n);

System.out.println(result);

}

}

 

3. 计算一个三位数的正整数各位数的和

问题:编写一个程序,让用户输入一个三位数的正整数值,然后计算该数各位数的和,

例如:如果输入的数是123,则计算结果是6

扩展:3-9666 18 6666666 42

代码如下:

import java.util.Scanner;

public class sanHe{

public static void main(String[] args){

System.out.println("请输入一个三位正整数");

Scanner sc = new Scanner(System.in);

int shu = sc.nextInt();

int sum = 0;

int a1,a2,a3;

a1 = shu%10;

a2 = shu/10%10;

a3 = shu/100;

sum = a1 + a2 +a3;

System.out.println("这个三位数各位数字之和为:"+ sum);

}

}

扩展的代码如下:

import java.util.Scanner;

public class duoHe3{

public static void main(String[] args){

System.out.println("请输入一个三到九位的正整数");

Scanner sc = new Scanner(System.in);

int shu = sc.nextInt();

System.out.println("这个数各位数字之和为:"+ duoHe(shu));

}

public static int duoHe(int shu){

int sum = 0;

while(shu>0){

sum = sum+shu%10;

shu = shu/10;

}

return sum;

}

}

 

 

4. 根据要求显示数字信息

问题:编写一个程序,用于接收用户输入的正整数,然后显示从0到该数为止表示的所有数字,比如输入11,则显示0,1,2,3,4,5,6,7,8,9,10,11

注意,输出的数字信息,是一行输出,并且用“,”连接,如上所述

输出完毕之后,再询问用户是否再次继续输入其他数字再玩一遍?“y”是继续,其他为退出。

代码如下:

import java.util.Scanner;

public class lieShu4{

public static void main(String[] args){

lieShu();

}

public static void lieShu(){

System.out.println("请输入一个正整数");

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

System.out.println("显示从0到该数为止表示的所有数字为:");

System.out.print(0);

for(int i = 1;i<=n;i++){

System.out.print(","+i);

}

System.out.println();

System.out.println("是否再次继续输入其他数字再玩一遍?“y”是继续,其他为退出。");

String playAgain = sc.next();

if(playAgain.equals("y")){

lieShu();

}else {

return;

}

}

}

/*      import java.util.Scanner;

Scanner input = new Scanner(System.in);

int n;

String isContinue;

do{

System.out.println("请输入一个数字:");

n = input.nextInt();

showNum(n);

System.out.println("是否继续玩,输入y继续玩,其他退出:");

isContinue = input.next();

}while(isContinue.equals("y") || isContinue.equals("Y"));

System.out.println("OVER");

}

public static void showNum(int n){

for(int i=0;i<n;i++){

System.out.print(i+",");

}

System.out.print(n);

System.out.println();

}

}*/

 

5. 编写一个程序,根据输入某个班级学员的成绩,计算该班级学员的平均成绩,班级的人数要求用户输入,根据输入的人数,分别录入学员的成绩,计算该班级学员的平均成绩,并显示计算结果

比如录入的班级人数为10,那么你就可以分别录入10个学员的成绩,并计算其平均分

代码如下:

import java.util.Scanner;

public class Average{

public static void main(String[] args){

System.out.println("请输入班级人数:");

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int sum = 0;

int score;

for(int i = 1;i<=n;i++){

System.out.println("请输入第"+i+"学员的成绩:");

score = sc.nextInt();

sum += score;

}

double average = sum/n;

System.out.println("平均分为"+average);

}

}

 

6. s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

注意:a是取1-9之间的数字,由用户来录入决定,具体要几个数相加也是由用户来决定,例如上述的例子,如果用户录入的分别是25,则就是上面的计算结果,2+22+222+2222+22222

代码如下:

import java.util.Scanner;

public class Test6{

public static void main(String[] args){

int sum = 0;

Scanner sc = new Scanner(System.in);

System.out.println("请输入a的值:");

int a = sc.nextInt();

System.out.println("请输入n的值:");

int n = sc.nextInt();

int[] arr = new int[n];

arr[0] = a;

for(int i = 1;i<=n-1;i++){

arr[i] = arr[i-1]+10*arr[i-1];

}

for(int j : arr){

sum += j;

}

System.out.println("这些数的和为:"+ sum);

}

}

 

7. 得到101至20之间的随机数,要求不能重复,并将这10个数装入到数组中(提示:遇到重复的,则不存放到数组中,继续随机获取下一个数)

代码如下:

public class Random10{

public static boolean isExits(int[] arr,int key){

for(int j=0;j<=arr.length-1;j++){

if(key == arr[j]){

return true;

}

}

return false;

}

public static void main(String[] args){

int a;

int[] arr = new int[10];

for(int i = 0;i<=arr.length-1;i++){

do{

a = (int)(Math.random()*20)+1;

}while(isExits(arr,a));

arr[i] = a;

}

for(int j : arr){

System.out.print(j+" ");

}

}

}

public class Random10ss{
	public static void main(String[] args){  
		int[] result = new int[10];  
		int count = 0;  
		while(count < 10) {  
			int num = (int) (Math.random() * 20) + 1;  
			boolean flag = true;  
			for (int j = 0; j <=count; j++) {  
				if(num == result[j]){  
                flag = false;  
                break;  
			}  
        }  
        if(flag){  
            result[count] = num;  
            count++;  
        }  
    }  
	for(int i :result){
		System.out.print(i+" ");
	}
	}  
}

public class Random10s{
    public static void main(String[] args){
        int a;
        int[] arr = new int[10];
        for(int i = 0;i<=arr.length-1;i++){
            a = (int)(Math.random()*20)+1;
            for(int j=0;j<=i;j++){
                if(a == arr[j]){
                    j = -1;
                    a = (int)(Math.random()*20)+1;
                }
            }
            arr[i] = a;
        }
        for(int j : arr){
            System.out.print(j+" ");
        }
    } 
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值