目录
题目2:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
题目4:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
题目5:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字
题目7:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
题目9:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
题目1:打印出所有的 水仙花数
import java.util.Scanner;
public class test01 {
public static void main(String[] args) {
shuiXian();
}
//打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,
//其各位数字立方和等于该数本身。
//例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。
public static void shuiXian() {
for (int i = 100; i < 1000; i++) {
int gw = i % 10;
int sw = i / 10 % 10;
int bw = i / 100 % 10;
if (i == (gw * gw * gw + bw * bw * bw + sw * sw * sw)) {
System.out.print(i + "\t");
}
}
}
}
题目2:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
import java.util.Scanner;
public class test02 {
public static void main(String[] args) {
fenJie();
}
//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
//1.程序分析:对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
//(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
//(2)如果n > i,但n能被i整除,则应打印出i的值,并用n除以i的商,作为新的正整数你,重复执行第一步。
//(3)如果n不能被i整除,则用i+1作为i的值,重复执行第一步
public static void fenJie(){
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个整数:");
int num=sc.nextInt();
int m=num;
System.out.print(num+"=");
for (int i = 2; i <m ; i++) {
if (num%i == 0) {
System.out.print(i);
if (i!=num){
System.out.print("*");
}
num=num/i;
i--;
}
}
}
}
题目3:输入两个正整数m和n,求其最大公约数和最小公倍数
import java.util.Scanner;
public class test03 {
public static void main(String[] args) {
yueShu();
}
//题目3:输入两个正整数m和n,求其最大公约数和最小公倍数。
public static void yueShu() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入两个正整数:");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int a = num1;
int b = num2;
while (true) {
if (num1 > num2) {
num1 = num1 - num2;
if (num1 < num2) {
num2 = num2 - num1;
} else if (num1 > num2) {
num1 = num1 - num2;
} else {
break;
}
} else if (num1 < num2) {
num2 = num2 - num1;
if (num1 < num2) {
num2 = num2 - num1;
} else if (num1 > num2) {
num1 = num1 - num2;
} else {
break;
}
} else {
break;
}
}
int c = a * b / num1;
System.out.println("最大公约数为:" + num1);
System.out.println("最小公倍数为:" + c);
}
}
题目4:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
import java.util.Scanner;
public class test04 {
public static void main(String[] args) {
tongJi();
}
//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
public static void tongJi() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一行字符串:");
String srt = sc.nextLine();
char arr[] = srt.toCharArray();
int english=0; //a~z:97~122; A~Z:65~90
int space=0; //32
int number=0; //0~9:48~57
int other=0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]>=48&&arr[i]<=57){
number++;
}
else if ((arr[i]>=65&&arr[i]<=90)||(arr[i]>=97&&arr[i]<=122)){
english++;
}
else if (arr[i]==32){
space++;
}
else {
other++;
}
}
System.out.println("共有英文字母:"+english+"个");
System.out.println("共有空格:"+space+"个");
System.out.println("共有数字:"+number+"个");
System.out.println("共有字符"+other+"个");
}
}
题目5:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字
import java.util.Scanner;
public class test05 {
public static void main(String[] args) {
ss();
}
//求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。
// 例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),
// 几个数相加有键盘控制。
public static void ss() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
int n = sc.nextInt();
System.out.print("请输入你要相加的个数:");
int m = sc.nextInt();
int sum=0;
String s = String.valueOf(n);
for (int i = 0; i < m; i++) {
int a=Integer.valueOf(s);
sum+=a;
s=n+s;
}
System.out.println(sum);
}
}
题目6:编程找出1000以内的所有完数
public class test06 {
public static void main(String[] args) {
ss();
}
//一个数如果恰好等于它的因子之和,这个数就称为"完数"。
// 例如6=1+2+3。编程找出1000以内的所有完数。
public static void ss() {
for (int a=1;a<1000;a++) {
int sum = 0;
for (int i = 1; i < a; i++) {
if (a % i == 0) {
sum = sum + i;
}
}
if (a == sum) {
System.out.println(a);
}
}
}
}
题目7:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class test07 {
public static void main(String[] args) {
ss();
}
//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public static void ss() {
int i = 0;
int j = 0;
int k = 0;
int count = 0;
for (i = 1; i <= 4; i++) {
for (j = 1; j <= 4; j++) {
for (k = 1; k <= 4; k++) {
if (i != j && i != k && j != k) {
System.out.print(i + "" + j + "" + k+"\t");
count++;
}
}
}
}
System.out.println();
System.out.println("共有:" + count);
}
}
题目8:企业发放的奖金根据利润提成
import java.util.Scanner;
public class test08 {
public static void main(String[] args) {
ss();
}
//企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
// 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,
// 高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;
// 40万到60万之间时高于40万元的部分,可提成3%;
// 60万到100万之间时,高于60万元的部分,可提成1.5%,
// 高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润lirun,求应发放奖金总数sum?
public static void ss() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入当月的利润是多少(万):");
double lirun = sc.nextDouble();
double sum = 0;
for (; ; ) {
if (lirun <= 10) {
sum = sum + lirun * 0.1;
System.out.println("共发放奖金:" + sum);
break;
} else if (lirun <= 20) {
double a = lirun - 10;
sum = sum + a * 0.075;
lirun = lirun - a;
} else if (lirun <= 40) {
double b = lirun - 20;
sum = sum + b * 0.05;
lirun = lirun - b;
} else if (lirun <= 60) {
double c = lirun - 40;
sum = sum + c * 0.03;
lirun = lirun - c;
} else if (lirun <= 100) {
double d = lirun - 60;
sum = sum + d * 0.015;
lirun = lirun - d;
} else if (lirun >= 100) {
double e = lirun - 100;
sum = sum + e * 0.01;
lirun = lirun - e;
}
}
}
}
题目9:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
public class test09 {
public static void main(String[] args) {
ss();
}
//一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
public static void ss() {
for (int i = 0; i < 10000; i++) {
int x = (int) Math.sqrt(i + 100);
int y = (int) Math.sqrt(i + 100 + 168);
if (x * x == i + 100 && y * y == i + 100 + 168) {
System.out.println(i);
}
}
}
}
题目10:输入某年某月某日,判断这一天是这一年的第几天?
import java.util.Scanner;
public class test10 {
public static void main(String[] args) {
ss();
}
public static void ss(){
//输入某年某月某日,判断这一天是这一年的第几天?
Scanner sc=new Scanner(System.in);
System.out.print("请输入年月日(格式:xxxx xx xx):");
int year=sc.nextInt();
int month=sc.nextInt();
int day=sc.nextInt();
int sum=0;
if ((year%4==0&year%100!=0)||year%400==0) {
for ( int i= 0; i <month ; i++) {
if (i==1||i==3||i==5||i==7||i==8||i==10||i==12){
sum=sum+31;
}
else if (i==2){
sum=sum+29;
}else if(i==0){
continue;
}
else {
sum=sum+30;
}
}
System.out.println("所以这是今年的第"+(sum+day)+"天");
}
else {
for ( int i= 0; i <month ; i++) {
if (i==1||i==3||i==5||i==7||i==8||i==10||i==12){
sum=sum+31;
}
else if (i==2){
sum=sum+28;
}else if(i==0){
continue;
}
else {
sum=sum+30;
}
}
System.out.println("所以这是今年的第"+(sum+day)+"天");
}
}
}