特殊的数字
问题描述
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
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:两个数都小于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);
}
}