1. 输入三边的长度,求三角形的面积和周长(海伦公式)
2 .设计一个程序,完成(英雄)商品的购买
展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
输入付款金额->打印购买小票(扩展)
import java.util.Scanner;
public class shopping{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int choice1;
boolean flag = true;
while(flag){
do{
System.out.println("\t\t英雄联盟商城登录界面");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.println("\t\t1. 用户登录");
System.out.println("\t\t2. 新用户注册");
System.out.println("\t\t3. 退出系统");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.print("(温馨提示)请输入您的选项:");
choice1 = input.nextInt();
if(choice1 == 1 || choice1 == 2 || choice1 == 3){
break;
}else{
System.out.println("\t\t对不起,输入的数字需在1~3之间");
}
}while (choice1 == 1 || choice1 == 2 || choice1 == 3);//输入的数字在1~3之间
switch (choice1){
case 1 :
System.out.println("\t\t英雄联盟商城首页");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.println("\t\t1. 进入英雄超市");
System.out.println("\t\t2. 休闲小游戏");
System.out.println("\t\t3. 退出系统");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.print("(温馨提示)请输入您的选项:");
int choice2 = input.nextInt();
switch(choice2){
case 1:
System.out.println("\t\t\t\t英雄商城英雄列表");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.println("\t\t编号 姓名 昵称 价格 库存 描述");
System.out.println("\t\t1 纳尔 迷失之牙 3500 100 丛林不会原谅盲目与无知");
System.out.println("\t\t2 锐雯 放逐之刃 4000 100 她是残忍高效的战士 ");
System.out.println("\t\t3 薇恩 暗夜猎手 3500 100 这个世界不想人们想象的那么美好");
System.out.println("\t\t4 扎克 生化魔人 3000 100 即使你没有脊柱,你也必须站起来");
System.out.println("\t\t5 杰斯 未来守护者 2500 100 武装着睿智与魅力,你的选择没有错");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
System.out.print("(温馨提示)请输入您要购买的英雄编号:");
int choice3 = input.nextInt();
System.out.println("\t\t\t\t英雄商城购买英雄");
System.out.println("英雄购买票据");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *");
System.out.println();
System.out.println("\t\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125");
System.out.println("\t\t英雄座右铭:一人之行可灭世,众人之勤可救世!");
System.out.println("\t\t活动折扣:9.5");
System.out.println();
System.out.println("\t\t插播广告:当风云变色,当流离失所,世界不再是旧日模样");
System.out.println("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡 ");
System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *");
double change = 0;
switch(choice3){
case 1:
System.out.println("\t\t英雄名称:纳尔 迷失之牙");
System.out.println("\t\t英雄价格:3500");
System.out.println("(温馨提示)请付款:");
double money1 = input.nextDouble();
change = money1 - (3500 * 0.95);
break;
case 2:
System.out.println("\t\t英雄名称:锐雯 放逐之刃");
System.out.println("\t\t英雄价格:4000");
System.out.println("(温馨提示)请付款:");
double money2 = input.nextDouble();
change = money2 - (4000 * 0.95);
break;
case 3:
System.out.println("\t\t英雄名称:薇恩 暗夜猎手");
System.out.println("\t\t英雄价格:3500");
System.out.println("(温馨提示)请付款:");
double money3 = input.nextDouble();
change = money3 - (3500 * 0.95);
break;
case 4:
System.out.println("\t\t英雄名称:扎克 生化魔人");
System.out.println("\t\t英雄价格:3000");
System.out.println("(温馨提示)请付款:");
double money4 = input.nextDouble();
change = money4 - (3000 * 0.95);
break;
case 5:
System.out.println("\t\t英雄名称:杰斯 未来守护者");
System.out.println("\t\t英雄价格:2500");
System.out.println("(温馨提示)请付款:");
double money5 = input.nextDouble();
change = money5 - (2500 * 0.95);
break;
}
System.out.println("\t\t\t\t找零:" + change);
break;
case 2:
System.out.println("\t\t\t\t进入休闲小游戏");
break;
case 3:
break;
}
break;
case 2 :
System.out.print("请输入您的密码:");
int password1 = input.nextInt();
System.out.print("请再次输入您的密码:");
int password2 = input.nextInt();
if(password1 == password2){
System.out.println("恭喜您,注册成功!!!");
}else{
System.out.print("\t\t两次输入的密码不一致!!!");
}
break;
case 3:
flag = false;
System.out.print("系统退出,期待您的下一次使用");
break;
}
}
}
}
运行结果截图:
3. 请输入一个数,判断这个数是偶数还是奇数,
如果使用偶数,请判断从1到该数是3的倍数有哪些
如果是奇数,请判断从1到该数是5的倍数有哪些
//判断奇偶数
import java.util.Scanner;
public class exercise{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
//&运算符
if ((num & 1) == 0){
System.out.println("数" + num + "是偶数");
for(int i = 1 ; i <= num ; i++){
if((i % 3) == 0){
System.out.println("从1到该偶数是3的倍数有" + i);
}
}
}
else{
System.out.println("数" + num + "是奇数");
for(int i = 1 ; i <= num ; i++){
if((i % 5) == 0){
System.out.println("从1到该偶数是5的倍数有" + i);
}
}
}
}
}
运行结果:
4. 循环输入某同学S1结业考试的5门课成绩,并计算平均分
//判断奇偶数
import java.util.Scanner;
public class exercise{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double sum = 0;
double average = 0;
for(int i = 0 ; i < 5; i++) {
System.out.print("请输入第" + (i+1) + "门考试成绩:");
double score = input.nextDouble();
sum += score;
}
average = sum / 5;
System.out.println("同学S1结业考试的5门课成绩平均分为:" + average);
}
}
运行结果:
5. 请从控制台输入一个数,是质数(素数)还是合数
提示:从2开始,只能被1和它本身除尽的数,是质数(素数)
import java.util.Scanner;
public class Work05{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入一个数:");
int num = input.nextInt();
boolean flag = true;
for(int i = 2 ; i <= num / 2 ; i++){
if(num % i == 0){
flag = false;
System.out.println("这个数是合数");
break;
}
}
if(flag){
System.out.println("这个数是质数");
}
}
}
运行结果:
6. 求1~100之间不能被3整除的数之和
class Work06{
public static void main(String[] args){
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
if(i % 3 != 0){
sum += i;
}
}
System.out.print("1~100之间不能被3整除的数之和是:" + sum);
}
}
运行结果:
7. 打印一个表格
根据用户输入的数
1 1*1 1*1*1
2 2*2 2*2*2
....
n n平方 n立方
import java.util.Scanner;
class Work07{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入层数:");
int layers = input.nextInt();
for(int i = 1 ; i <= layers ; i++){
System.out.println(i + "\t" + i + "*" + i + "\t" + i + "*" + i + "*" + i);
}
}
}
8. 请使用循环完成如下菱形图案的打印
*
**
***
****
*****
******
import java.util.Scanner;
public class Test12{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
if (layers > 0){
for(int i = 1 ; i <= layers ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print("*");
}
System.out.println();
}
}else{
System.out.println("您输入的数字不合规范");
}
}
}
*
***
*****
*******
import java.util.Scanner;
class Test14 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
outputIsOscelesTriangle(layers);
}
public static void outputIsOscelesTriangle(int layers){
//空格
for(int i = 1 ; i <= layers ; i++){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
for (int j = 1 ; j <= starNum ; j++){
System.out.print("*");
}
System.out.println();
}
}
}
*******
*****
***
*
import java.util.Scanner;
public class Test15 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
outputIsOscelesTriangle(layers);
}
public static void outputIsOscelesTriangle(int layers){
//空格
for(int i = layers ; i >= 0 ; i--){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;
for (int j = 1 ; j <= starNum ; j++){
System.out.print("*");
}
System.out.println();
}
}
}
*
***
*****
*******
*
*
*
*
import java.util.Scanner;
class Work08 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
printTree(layers);
}
public static void printTree(int layers){
int layer = layers;
//打印树枝
for(int i = 1; i <= layer; i++){
//空格数
int spaceNum = layer - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//*数
int starNum = 2 * i - 1;
for(int j = 1; j <= starNum; j++){
System.out.print("*");
}
System.out.println();
}
//打印树干
for(int i = 1; i <= layer; i++){
//空格数
int spaceNum = layer - 1;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
System.out.println("*");
}
}
}
*
***
*****
*******
*****
***
*
在原有正三角和倒三角的基础上将两者拼接在一起,去掉重复的中间一行*即可
import java.util.Scanner;
class Work09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
outputIsOscelesTriangle(layers);
}
public static void outputIsOscelesTriangle(int layers){
//正三角
for(int i = 1 ; i <= layers ; i++){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
for (int j = 1 ; j <= starNum ; j++){
System.out.print("*");
}
System.out.println();
}
//倒三角
for(int i = layers - 1 ; i >= 0 ; i--){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;
for (int j = 1 ; j <= starNum ; j++){
System.out.print("*");
}
System.out.println();
}
}
}
*
* *
* *
* *
* *
* *
*
import java.util.Scanner;
class Work10 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
outputIsOscelesTriangle(layers);
}
public static void outputIsOscelesTriangle(int layers){
//正三角
for(int i = 1 ; i <= layers ; i++){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
for (int j = 1 ; j <= starNum ; j++){
if(j == 1 || j == starNum){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
//倒三角
for(int i = layers - 1 ; i >= 0 ; i--){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;
for (int j = 1 ; j <= starNum ; j++){
if(j == 1 || j == starNum){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
*
***
* * *
*******
* * *
***
*
import java.util.Scanner;
class Work11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要打印的层数:");
int layers = input.nextInt();
outputIsOscelesTriangle(layers);
}
public static void outputIsOscelesTriangle(int layers){
//正三角
for(int i = 1 ; i < layers ; i++){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
for (int j = 1 ; j <= starNum ; j++){
if(j == 1 || j == starNum || j == (starNum / 2) + 1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
//中间一行
for(int j = 1; j <= 2 * layers - 1; j++){
System.out.print("*");
}
System.out.println();
//倒三角
for(int i = layers - 1 ; i >= 0 ; i--){
//计算空格数量
int spaceNum = layers - i;
for(int j = 1; j <= spaceNum; j++){
System.out.print(" ");
}
//计算*数量
int starNum = 2 * i - 1;
for (int j = 1 ; j <= starNum ; j++){
if(j == 1 || j == starNum || j == (starNum / 2) + 1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
9. 请在控制台上输入两个数,并且输入一个符号(+-*/%),使用switch语句
import java.util.Scanner;
class Work13 {
public static void main(String[] args) {
System.out.print("请输入两个数,并且输入一个符号(+-*/%):");
Scanner input =new Scanner(System.in);
double num1 = input.nextDouble();
double num2 = input.nextDouble();
String sign = input.next();
double result = calculation(num1, num2, sign);
System.out.print(num1 + sign + num2 + "=" + result);
}
public static double calculation(double num1, double num2, String sign){
double a = num1;
double b = num2;
String s = sign;
double result =0;
switch(sign){
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
result = a / b;
break;
case "%":
result = a % b;
break;
}
return result;
}
}
运行结果:
10. 请输出100~1000范围内,能被5和6整除的数
class Work14 {
public static void main(String[] args) {
System.out.println("输出100~1000范围内,能被5和6整除的数");
int leftBound = 100;
int rightBound = 1000;
print(leftBound, rightBound);
}
public static void print(int num1, int num2){
int leftBound = num1;
int rightBound = num2;
for(int i = leftBound; i <= rightBound; i++){
if(i % 30 == 0){
System.out.println(i);
}
}
}
}
运行结果:
11. 输入一个年份,判断该年是否是闰年
import java.util.Scanner;
class Work15 {
public static void main(String[] args) {
System.out.print("输入一个年份,判断该年是否是闰年:");
Scanner input =new Scanner(System.in);
int year = input.nextInt();
boolean result = judgeLeapYear(year);
if(result){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
}
//年号能被4整除且不能被100整除,或者能被400整除的为闰年。
public static boolean judgeLeapYear(int year){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
return true;
}
return false;
}
}
运行结果:
12. 健康计划
用户输入身高(m),体重(kg)
计算公式:BMI =体重 /( 身高^2)
BMI < 18.5:过轻
18.5≤ BMI <24:正常
24 ≤ BMI <27:过重
27 ≤ BMI < 30:轻度肥胖
30 ≤ BMI < 35:中度肥胖
BMI ≥ 35:重度肥胖
import java.util.Scanner;
class Work16 {
public static void main(String[] args) {
System.out.print("请输入您的身高(m),体重(kg),将为您计算BMI:");
Scanner input =new Scanner(System.in);
double height = input.nextDouble();
double weight = input.nextDouble();
printHealthy(height, weight);
}
//年号能被4整除且不能被100整除,或者能被400整除的为闰年。
public static void printHealthy(double a, double b){
double height = a;
double weight = b;
double bmi = weight / (height * height);
if(bmi < 18.5){
System.out.println("过轻");
}else if(bmi < 24){
System.out.println("正常");
}else if (bmi < 27){
System.out.println("过重");
}else if(bmi < 30){
System.out.println("轻度肥胖");
}else if(bmi < 35){
System.out.println("中度肥胖");
}else{
System.out.println("重度肥胖");
}
}
}
运行结果:
13. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?
class Work17 {
public static void main(String[] args) {
System.out.print("一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是:");
int minResult = printNum();
System.out.println(minResult);
}
public static int printNum(){
int result = 0;
for (int i = 9; i < 100; i++ ){
if(((i + 3) % 5 == 0) && ((i - 3) % 6 == 0)){
result = i;
break;
}
}
return result;
}
}
运行结果:
14. 在400--500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?
class Work18 {
public static void main(String[] args) {
System.out.print("在400--500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是:");
int result = printNum();
System.out.println(result);
}
public static int printNum(){
int result = 0;
for (int i = 400; i <= 500; i++ ){
if((i % 2 == 1) && (i % 5 == 3) && (i % 9 == 1)){
result = i;
break;
}
}
return result;
}
}
运行结果:
15. 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
class Work19 {
public static void main(String[] args) {
System.out.print("有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是:");
printNum();
}
public static void printNum(){
int minResult = 0;
int maxResult = 0;
for (int i = 1000; i <= 9998; i = i + 2 ){
int hundth = i / 100 % 10;//百位
int tenth = i % 100 / 10;//十位
if(hundth == 3 && tenth == 6 && (i % 2 == 0) && (i % 3 == 0)){
minResult = i;
break;
}
}
System.out.println("最小数是:" + minResult);
for (int i = 9998; i >= 1000; i = i - 2 ){
int hundth = i / 100 % 10;//百位
int tenth = i % 100 / 10;//十位
if(hundth == 3 && tenth == 6 && (i % 2 == 0) && (i % 3 == 0)){
maxResult = i;
break;
}
}
System.out.println("最小数是:" + maxResult);
}
}
运行结果:
16. 编程求一个四位自然数ABCD,它乘以A后变成DCBA
class Work20 {
public static void main(String[] args) {
System.out.print("编程求一个四位自然数ABCD,它乘以A后变成DCBA:");
printNum();
}
public static void printNum(){
int result = 0;
for (int i = 1001; i <= 9999; i = i + 2 ){
int thousand = i / 1000;//千位
int hundth = i / 100 % 10;//百位
int tenth = i % 100 / 10;//十位
int gewei = i % 1000;//个位
int changeNum = gewei * 1000 + tenth * 100 + hundth *10 + thousand;
if(i * thousand == changeNum){
result = i;
System.out.println(result);
}
}
}
}
运行结果:
17. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.
class Work21 {
public static void main(String[] args) {
System.out.println("编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和:");
printNum();
}
public static void printNum(){
int result = 0;
for (int i = 100; i <= 999; i++ ){
int hundth = i / 100;//百位
int tenth = i % 10 / 10;//十位
int gewei = i % 100;//个位
int sum = gewei + tenth + hundth;
if((i / 11) == sum){
result = i;
System.out.println(result);
}
}
}
}
运行结果:
18. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.
class Work22 {
public static void main(String[] args) {
System.out.println("某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数");
printNum();
}
public static void printNum(){
int result = 0;
for (int i = 0; i <= 99999; i++ ){
int shang = i / 80;
if((shang % 7 == 0) && (shang % 2 == 1) && (shang % 3 == 1) && (shang % 4 == 1) && (shang % 5 == 1) && (shang % 6 == 1)){
result = i;
System.out.println(result);
}
}
}
}
运行结果:
19. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
20. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
class Work24{
public static void main(String[] args) {
System.out.print("一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数:");
printNum();
}
public static void printNum(){
int result = 0;
for (int i = 10000; i <= 99999; i = i + 1 ){
int million = i / 10000;//万位
int thousand = i / 1000 % 10;//千位
int hundth = i / 100 % 10;//百位
int tenth = i % 100 / 10;//十位
int gewei = i % 10;//个位
int changeNum1 =7 + gewei * 10 + tenth * 100 + hundth *1000 + thousand * 10000 + million * 100000;
int changeNum2 = i + 700000;
if(5 * changeNum1 == changeNum2){
result = i;
System.out.println(result);
}
}
}
}
运行结果:
21. 把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.
class Work25{
public static void main(String[] args) {
System.out.println("把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已");
int num = 123456789;
for(int i = 2; i < 10; i++){
int num1 = num * i;
String s = num + "";
if(!(s.contains("0")) && judgeNum(num1) == judgeNum(num)){
System.out.println(num1);
}
}
}
public static int judgeNum(int num1){
int num = num1;
if(num <= 9){
return num;
}else{
return num % 10 + judgeNum(num / 10);
}
}
}
运行结果:
22. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
class Work26 {
public static void main(String[] args) {
System.out.println("验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.");
boolean result = prove();
if (result){
System.out.println("成立!!!");
}else{
System.out.println("错误!!!");
}
}
public static boolean prove(){
boolean flag = true;
for (int i = 10; i <= 9999; i = i + 2 ){
int thousand = i / 1000;//千位
int hundth = i / 100 % 10;//百位
int tenth = i % 100 / 10;//十位
int gewei = i % 10;//个位
int sub = i - (gewei + tenth + hundth + thousand);
if(sub % 9 != 0){
flag = false;
break;
}
}
return flag;
}
}
运行结果:
23. 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
24. 求水仙花数。
ABC = a^3+b^3+c^3
class Work28 {
public static void main(String[] args) {
System.out.println("求水仙花数。(ABC ?= a^3+b^3+c^3)");
daffodil();//水仙花
}
public static void daffodil(){
for (int i = 100; i <= 999; i++ ){
double sum = 0;
int hundth = i / 100;//百位
int tenth = i / 10 % 10;//十位
int gewei = i % 10;//个位
//sum = Math.pow(gewei, 3) + Math.pow(tenth, 3) + Math.pow(hundth, 3);
sum = hundth * hundth * hundth + tenth * tenth * tenth + gewei * gewei * gewei;
if(i == sum){
System.out.println(i);
}
}
}
}
运行结果:
25. 求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
import java.util.Scanner;
class Work29 {
public static void main(String[] args) {
System.out.println("求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定");
Scanner input =new Scanner(System.in);
int num = input.nextInt();//数字
int digit = input.nextInt();//项数
int sum = sumNum(num, digit);
System.out.println(sum);
}
public static int sumNum(int num1, int digit1){
int num = num1;
int digit = digit1;
int num2 = 0;
if(digit == 1){
return num;
}else{
for(int i = digit - 1 ; i >= 0 ; i--){
num2 += num * Math.pow(10 , i);
}
digit--;
return num2 + sumNum(num , digit);
}
}
}
运行结果:
26. 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?
方法一:for循环
class Work30 {
public static void main(String[] args) {
System.out.println("求 2/1+3/2+5/3+8/5+13/8.....前20项之和");
int digit = 20;
double sum = sumNum(digit);
System.out.println(sum);
}
public static double sumNum(int digit){
double a = 1;
double b = 2;
double sum = 2 / 1;
for(int i = 2; i <= digit; i++){
double c = a + b;
a = b;
b = c;
sum += b / a;
}
return sum;
}
}
方法二:递归
import java.util.Scanner;
class Work30 {
public static void main(String[] args) {
System.out.println("求 2/1+3/2+5/3+8/5+13/8.....前20项之和");
Scanner input= new Scanner(System.in);
System.out.print("请输入项数:");
int digit = input.nextInt();
double sum = 0;
for(int i = 1; i <= digit; i++){
sum += (fib(i + 1) / fib(i));
}
System.out.println(sum);
}
public static double fib(int i){
if(i == 1 || i == 2){
return i;
}else{
return fib(i - 1) + fib(i - 2);
}
}
}
运行结果: