特殊的数字

问题描述

  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1×1×1+5×5×5+3×3×3。编程求所有满足这种条件的三位十进制数。

输出格式

  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

思路:循环直接干即可

public class Main {

    public static void main(String[] args) {
        for (int i=100;i<999;i++){
            if ((i%10)*(i%10)*(i%10)+(i/10%10)*(i/10%10)*(i/10%10)+(i/100)*(i/100)*(i/100)==i){
                System.out.println(i);
            }
        }

    }
}

算法训练 P0103

  从键盘输入一个大写字母,要求改用小写字母输出。
输入
  A
输出
  a

思路:使用java中的tolowercase函数直接转化为小写字母。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String a = scanner.next();
        System.out.println(a.toLowerCase());
    }
}

5-1最小公倍数

问题描述

  编写一函数lcm,求两个正整数的最小公倍数。

样例输入

一个满足题目要求的输入范例。
例:

3 5

样例输出

与上面的样例输入对应的输出。
例:
img

数据规模和约定

  输入数据中每一个数的范围。
  例:两个数都小于65536。

思路:

1、首先比较两个数的大小,将较大的数固定

2、使用辗转相除求最小公倍数

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a =scanner.nextInt();
        int b = scanner.nextInt();
        if (b>a){//将a变成最大的
            int max = b;
            b=a;
            a=max;
        }
        int max1=a;
        int max2=b;

            while (b!=0) {
                int c = a % b;
                a = b;
                b = c;
            }
        System.out.println(max1*max2/a);
    }
}

十进制数转八进制数

编写函数,其功能为把一个十进制数转换为其对应的八进制数。程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数。
 样例输入 9274 样例输出 22072
样例输入 18 样例输出 22

思路:

1、java里面有专门用于进制转化的工具类,用integer.toOctalString方法

2、将十进制转化为二进制,再将二进制转化为八进制

3、将十进制按照除8取余,直到商为0为止

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        System.out.println(Integer.toOctalString(a));
    }
}

1的个数

问题描述

  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。

输入格式

  一个正整数n

输出格式

  一个整数,表示1出现的资料

样例输入

15

样例输出

8

数据规模和约定

  n不超过30000

思路:使用字符串的遍历查找1的个数

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n =scanner.nextInt();
        //输入的整数
        int count = 0;
        for (int i=1;i<=n;i++){
            String str = String.valueOf(i);
            for (int j=0;j<str.length();j++){
                if (str.charAt(j)=='1'){
                    count++;
                }
            }
        }
        System.out.println(count);
    }
}

字符串合并

问题描述

  输入两个字符串,将其合并为一个字符串后输出。

输入格式

  输入两个字符串

输出格式

  输出合并后的字符串

样例输入

一个满足题目要求的输入范例。
Hello

World

样例输出

HelloWorld

数据规模和约定

  输入的字符串长度0<n<100

思路:暴力

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 =scanner.nextLine();
        String str2 =scanner.nextLine();
        System.out.println(str1+str2);
    }
}
最后修改:2023 年 02 月 02 日
如果觉得我的文章对你有用,请随意赞赏