十二个基础练习题
1.编写程序,计算用户输入数据的立方
import java.util.Scanner;
class Work1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个自然数:");
int num = sc.nextInt();
System.out.println(num*num*num);
}
}
- 输入4个数,若第一个数第二个数相等,第三个数和第四个数的
和与第一个数和第二个数的和相等,输出1,否则输出0
/*
输入4个数,若第一个数第二个数相等,第三个数和第四个数的
和与第一个数和第二个数的和相等,输出1,否则输出0
*/
import java.util.Scanner;
class Work2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = sc.nextInt();
int num4 = sc.nextInt();
if(num1==num2 && num3==num4 && (num1+num2)==(num3+num4)){
System.out.println("1");
}else{
System.out.println("0");
}
}
}
3.定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋给变量max,将max输出,注意输入使用Scanner输入
/*
定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋
给变量max,将max输出,注意输入使用Scanner输入
*/
import java.util.Scanner;
class Work2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num1 = 0;
int num2 = 0;
int max = 0;
num1 = sc.nextInt();
num2 = sc.nextInt();
if(num1>num2){
max=num1;
}else{
max=num2;
}
System.out.println(max);
}
}
4.定义三个整型变量x,y,z,从键盘初始化变量值,判断三个变量的大小,将较大的值赋给变量max,将max输出,注意输入使用Scanner输入
import java.util.Scanner;
class Work4{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int numOne = sc.nextInt();
int numTwo = sc.nextInt();
int numThree = sc.nextInt();
int max = 0;
if(numOne > numTwo){
max = numOne;
}else{
max = numTwo;
}
if(max>numThree){
System.out.println("最大值为:"+max);
}else{
max = numThree;
System.out.println("最大值为:"+max);
}
}
}
5.流程控制(月份天数判断)输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数输出,注意输入使用Scanner输入
比如:
输入 6 输出为30
输入 2 输出为28
import java.util.Scanner;
class Work5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int choice = sc.nextInt();
switch(choice){
case 1: System.out.println("31天");
break;
case 2: System.out.println("28天");
break;
case 3: System.out.println("31天");
break;
case 4: System.out.println("30天");
break;
case 5: System.out.println("31天");
break;
case 6: System.out.println("30天");
break;
case 7: System.out.println("31天");
break;
case 8: System.out.println("31天");
break;
case 9: System.out.println("30天");
break;
case 10: System.out.println("31天");
break;
case 11: System.out.println("30天");
break;
case 12: System.out.println("31天");
break;
default:
System.out.println("输入错误!");
}
}
}
6.完成一个9*9乘法表
class Work6{
public static void main(String[] args){
int i=1;
int j=1;
while(i<=9){
j=1;
while(j<=i){
System.out.print(i+"*"+j+"="+i*j+" ");
j++;
}
System.out.println();
i++;
}
}
}
7.将一个正整数进行分解质因数操作 例如: 输入90 结果 233*5
import java.util.Scanner;
class Work7{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num = sc.nextInt();
int i = 2;
while(i<=num){
// 当i可以整除n时
while(i!=num){
if(num%i==0){
System.out.print(i+"*");
num = num/i;
}else
break;
}
i++;
}
System.out.println(num);
}
}
8.使用循环完成30位以内的斐波那契数列
1 1 2 3 5 8 11 19…
import java.util.Scanner;
class Work8{
public static void main(String[] args){
int i=0;
int numOne = 1;
int numTwo = 1;
int temp = 0;
// 循环三十次
while(i<30){
if(i<2){
System.out.print(numTwo+" ");
}else{
temp = numTwo;
numTwo = numTwo + numOne;
numOne = temp;
System.out.print(numTwo+" ");
}
i++;
}
}
}
9.利用循环完成15的阶乘
class Work9{
public static void main(String[] args){
int n=15;
System.out.print(n+"!=");
long ret = 1;
while(n>1){
System.out.print(n+"*");
ret = ret * (long)n;
n--;
}
System.out.println("1="+ret);
}
}
10.判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO
说明: 水仙花就是一个数的每个数字的立方和等于它本身的数, 例如 153就是一个水仙
花数 111+555+333=153
import java.util.Scanner;
class Work10{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int numInput = num;
int power = 0;
int result = 0;
int fnum = num;
int t = num;
// 判断输入的数是几位数
while((t = (t/10))>0){
power++;
}
//System.out.println(power);
while(power>-1){
int time = power; //
int devisor = 1; // 除数
while(time>0){ // 构建除数
devisor *= 10;
time--;
}
int temp = num/devisor; // 获取该位数上的值
System.out.println(temp);
result += temp*temp*temp;
num = num-temp*devisor; //num应该为原数减掉最大位*devisor
power--;
}
if(result == fnum){
System.out.println(fnum+"为水仙花数!");
}else{
System.out.println(fnum+"不是水仙花数");
}
}
}
11.逢七过,1 ~ 100以内的所有数值展示,如果带有7或者和7有关,打印过
逆序数值
class Work11{
public static void main(String[] args){
int i = 1;
int devisor = 1;
while(i<101){
if(i>9){
devisor = 10;
}
if(i==7){
System.out.print(i+"过->");
}else if(((i/devisor)== 7) || (i-(i/devisor)*devisor)==7){
System.out.print(i+"过->");
}
i++;
}
}
}
12.用户输入123456 展示654321
用户输入987654 展示456789
import java.util.Scanner;
class Work12{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
long num = sc.nextLong();
int time = 0;
long temp = num;
/* 判断输入的数值的位数 */
while(true){
if((temp = temp/10)>0)
time++;
else
break;
}
temp = num;
//System.out.print(time);
int i=1;
int sup2 = 0;
while(i<=time){
int sup = 1;
//构建10的次方
int j = i;
while(j>0){
sup *= 10;
j--;
}
if(i == time){
sup2 = sup;
}
/* 尾数*/
long mass = temp%sup;
/* 每次都要剪掉尾数 */
temp = temp - mass;
i++;
mass = (mass*10)/sup;
// 输出末尾的数
System.out.print(mass);
}
System.out.println(temp/sup2);
}
}
ps:写的不是很好,注释可能也不是很漂亮,但是是正确的,运行通过了的,可能还存在某些未知的bug,请大家指出。