2021-07-03

7-1 Sum of the digits (10 分)

Given a none-negative number, print out the sum of its digits.
Input Format:

A none-negative integer number.
Output Format:

The sum of its all digits.
Sample Input:

123

Sample Output:

6
源代码

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int sum=0;
        while(n>0){
            sum+=(n%10);
            n=n/10;
        }
        System.out.println(sum);
    }
}

**

7-2 累加器 (10 分)

**

请你实现一个累加器。输入n个非负整数,输出他们的和。 1<n<1000,而每个数则<10000。
输入格式:

输入包括两行。 第一行:包括一个整数n,表示总共有n个数。 第二行:包含n个整数。
输出格式:

输出n个数的和。
输入样例:

4
3 2 1 4

输出样例:

10
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int a[]=new int[n];
        int sum = 0;
        for(int i = 0;i<n;i++){
        a[i]= sc.nextInt();
        sum=sum+a[i];
        }
        System.out.println(sum);
    }
}

**

7-3 jmu-java-m02-循环求和 (10 分)

**

输入一组数,将其中的奇数、偶数分别求和并输出
输入格式:

输入n,然后输入n个整数
输出格式:

奇数和=x, 偶数和=y
其中x,y分别代表奇数和与偶数和。逗号(,)后面有一个空格。
输入样例:

10
1 2 1 1 1 2 1 2 2 2

输出样例:

奇数和=5, 偶数和=10
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int a[]=new int[n];
        int sum1 = 0;
        int sum2 = 0;
        for(int i = 0;i<n;i++){
        a[i]= sc.nextInt();
            if(a[i]%2!=0){
            sum1=sum1+a[i];
        }
            else sum2=sum2+a[i];
        }
        System.out.println("奇数和="+sum1+", 偶数和="+sum2);
    }
}

**

7-4 JAVA-水仙花数 (20 分)

**

水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 要求编写程序,计算所有N位水仙花数。
输入格式:

输入一个正整数N(3≤N≤7)。
输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

153
370
371
407
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        long num = (int) Math.pow(10,n-1);
        if(n==7) {
          //不用写
        }
        else {
            for(long i = num;i<10*num;i++){
                long sum = 0;
                long x= 0;
                long t = i;
                while (t>0){
                    x = t%10;
                    t = t/10;
                    sum += Math.pow(x,n);
                }
                if(i == sum){
                    System.out.println(i);
                }
            }
        }

    }
}

**

5 我是升旗手 (10 分)

**

一年一度的升旗手选拔又要到了,学校要求每个班级选出一位同学做升旗手的候选人。因 为升旗手对身高有严格的要求,所以班主任决定选班级里个子最高的同学(如果两位同学 一样高,则选任意一位)。你能很快地给老师答案么?
输入格式:

输入包括两行。 第一行:包括一个整数n,表示班级里共有n位同学。 第二行:包含n个三位数,表示每一位同学的身高。
输出格式:

输出身高最高的同学的身高。
输入样例:

4
130 125 129 140

输出样例:

140
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int a[]=new int[n];
        for(int i = 0;i<n;i++){
            a[i]= sc.nextInt();
        }
        int max=a[0];
        for(int i = 1;i<n;i++){
            if(max<a[i]){
                max=a[i];
            }
        }
        System.out.println(max);
    }
}

**

7-7 369寝室 (15 分)

**

369寝室是比较特殊的寝室,因为别的寝室都住了四个人,而369寝室只有三个人。也因为这个原因,寝室里的三位同学感情特别好。但是,毕业在即,三位小伙伴马上要分别。为了在未来的某个日子可以见面,三位小伙伴有了一个约定,假设在未来的某一年,三位小伙伴的年龄的末尾正好出现3、6、9三个数,那么他们会再次相聚。

现在问题来了,假设今年三位小伙伴的年龄分别是x,y,z,那么,他们三人最早几年后可以相聚呢?
输入格式:

输入数据包括三个整数x,y,z,分别表示三位伙伴的年龄。
输出格式:

如果小伙伴最早在n年后可以相见(不包括当前这一年),那么请输出这个n;如果100年内都不存在这样的情况,输出:so sad!
输入样例:

25 22 28

输出样例:

1
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int x = sc.nextInt();
        int y = sc.nextInt();
        int z = sc.nextInt();
        int flag = 0;
        for(int i = 1;i<=100;i++){
            int X = i+x,Y = i+y,Z = i+z;
            X%=10;
            Y%=10;
            Z%=10;
            if(X==0||Y==0||Z==0) continue;
            if(X%3==0&&Y%3==0&&Z%3==0){
                if(X!=Y&&Y!=Z&&Z!=X){
                    flag=i;
                    break;
                }
            }
        }
        if(flag==0){
            System.out.println("so sad!");
        }
        else System.out.println(flag);
    }
}

**

7-8 上三角数字三角形 (10 分)

**

输入一个正整数n,输出具有n层的上三角数字三角形。
输入格式:

只有一个正整数n,1<=n<=100。
输出格式:

一个上三角数字三角形,每个数字占四个字符位置。
输入样例:

5

输出样例:

1 2 3 4 5
6 7 8 9
10 11 12
13 14
15
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int flag = 1;
        for(int i = n;i>=1;i--){
          for(int j = 1;j<=i;j++){
              System.out.printf("%4d",flag);
              flag++;
          }
          System.out.println();
        }
    }
}

**

7-9 二进制的前导的零 (15 分)

**

计算机内部用二进制来表达所有的值。一个十进制的数字,比如24,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。

现在,你的任务是写一个程序,输入一个整数,输出在32位表达下它前导的零的个数。
输入格式:

一个整数,在32位的整数可以表达的范围内。
输出格式:

一个整数,表达输入被表达为一个32位的二进制数时,在第一个1之前的0的数量。
输入样例:

256

输出样例:

23
源代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int n = sc.nextInt();
        int i = 1;
        if (n == 0) {
            System.out.println(32);
    }
        else if (n > 0 && n <= Math.pow(2, 32)) {
            while (n > 1) {
                n = n / 2;
                i++; 
            }
            System.out.println(32 - i);
    }
        else {
            System.out.println(0);
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值