01、判断101-200之间有多少个素数,并输出所有素数。?
public class Prog01{
public static void main(String[] args){
int m = 1;
int n = 1000;
int count = 0;
//统计素数个数
for(int i=m;i<n;i++){
if(isPrime(i)){
count++;
System.out.print(i+" ");
if(count%10==0){
System.out.println();
}
}
}
System.out.println();
System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");
}
//判断素数
private static boolean isPrime(int n){
boolean flag = true;
if(n==1)
flag = false;
else{
for(int i=2;i<=Math.sqrt(n);i++){
if((n%i)==0 || n==1){
flag = false;
break;
}
else
flag = true;
}
}
return flag;
}
}
02、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
public class Prog02{
public static void main(String[] args){
int n = 13;
decompose(n);
}
private static void decompose(int n){
System.out.print(n+"=");
for(int i=2;i<n+1;i++){
while(n%i==0 && n!=i){
n/=i;
System.out.print(i+"*");
}
if(n==i){
System.out.println(i);
break;
}
}
}
}
03、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
import java.util.Scanner;
public class Prog03{
public static void main(String[] args){
System.out.print("请输入一串字符:");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();//将一行字符转化为字符串
scan.close();
count(str);
}
//统计输入的字符数
private static void count(String str){
String E1 = "[\u4e00-\u9fa5]";//汉字
String E2 = "[a-zA-Z]";
String E3 = "[0-9]";
String E4 = "\\s";//空格
int countChinese = 0;
int countLetter = 0;
int countNumber = 0;
int countSpace = 0;
int countOther = 0;
char[] array_Char = str.toCharArray();//将字符串转化为字符数组
String[] array_String = new String[array_Char.length];//汉字只能作为字符串处理
for(int i=0;i<array_Char.length;i++)
array_String[i] = String.valueOf(array_Char[i]);
//遍历字符串数组中的元素
for(String s:array_String){
if(s.matches(E1))
countChinese++;
else if(s.matches(E2))
countLetter++;
else if(s.matches(E3))
countNumber++;
else if(s.matches(E4))
countSpace++;
else
countOther++;
}
System.out.println("输入的汉字个数:"+countChinese);
System.out.println("输入的字母个数:"+countLetter);
System.out.println("输入的数字个数:"+countNumber);
System.out.println("输入的空格个数:"+countSpace);
System.out.println("输入的其它字符个数:"+countSpace);
}
}
04、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
import java.util.Scanner;
public class Prog04{
public static void main(String[] args){
System.out.print("求s=a+aa+aaa+aaaa+...的值,请输入a的值:");
Scanner scan = new Scanner(System.in).useDelimiter("\\s*");//以空格作为分隔符
int a = scan.nextInt();
int n = scan.nextInt();
scan.close();//关闭扫描器
System.out.println(expressed(2,5)+add(2,5));
}
//求和表达式
private static String expressed(int a,int n){
StringBuffer sb = new StringBuffer();
StringBuffer subSB = new StringBuffer();
for(int i=1;i<n+1;i++){
subSB = subSB.append(a);
sb = sb.append(subSB);
if(i<n)
sb = sb.append("+");
}
sb.append("=");
return sb.toString();
}
//求和
private static long add(int a,int n){
long sum = 0;
long subSUM = 0;
for(int i=1;i<n+1;i++){
subSUM = subSUM*10+a;
sum = sum+subSUM;
}
return sum;
}
}
05、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public class Prog05{
public static void main(String[] args){
int count = 0;
int n = 0;
for(int i=1;i<5;i++){
for(int j=1;j<5;j++){
if(j==i)
continue;
for(int k=1;k<5;k++){
if(k!=i && k!=j){
n = i*100+j*10+k;
System.out.print(n+" ");
if((++count)%5==0)
System.out.println();
}
}
}
}
System.out.println();
System.out.println("符合条件的数共:"+count+"个");
}
}
06、给一个不多于5位的正整数。要求:一、它是几位数,二、逆序打印出各位数字。
public class Prog06{
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
int i = 0;
int[] a = new int[5];
do{
a[i] = n%10;
n /= 10;
++i;
}while(n!=0);
System.out.print("这是一个"+i+"位数,从个位起,各位数字依次为:");
for(int j=0;j<i;j++)
System.out.print(a[j]+" ");
}
}
07、输入三个整数x、y、z,把这三个数由小到大输出。
import java.util.Scanner;
public class Prog07{
public static void main(String[] args){
System.out.print("请输入3个整数:");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
scan.close();
if(x>y){
int t = x;
x = y;
y = t;
}
if(x>z){
int t = x;
x = z;
z = t;
}
if(y>z){
int t = y;
y = z;
z = t;
}
System.out.println(x+" "+y+" "+z);
}
}
08、利用递归方法求5!
public class Prog08{
public static void main(String[] args){
System.out.println(fact(10));
}
//递归求阶乘
private static long fact(int n){
if(n==1)
return 1;
else
return fact(n-1)*n;
}
}
09、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
import java.io.*;
public class Prog09{
public static void main(String[] args){
int n = 0;
System.out.print("请输入一个5位数:");
BufferedReader bufin = new BufferedReader(new InputStreamReader(System.in));
try{
n = Integer.parseInt(bufin.readLine());
}catch(IOException e){
e.printStackTrace();
}finally{
try{
bufin.close();
}catch(IOException e){
e.printStackTrace();
}
}
palin(n);
}
private static void palin(int n){
int m = n;
int[] a = new int[5];
if(n<10000 || n>99999){
System.out.println("输入的不是5位数!");
return;
}else{
for(int i=0;i<5;i++){
a[i] = n%10;
n /= 10;
}
if(a[0]==a[4] && a[1]==a[3])
System.out.println(m+"是一个回文数");
else
System.out.println(m+"不是回文数");
}
}
}
10、将一个数组逆序输出。
public class Prog10{
public static void main(String[] args){
int[] A = new int[]{1,2,3,4,5,6,7,8,9,};
print(A);
System.out.println();
int[] B = reverse(A);
print(B);
}
private static int[] reverse(int[] A){
for(int i=0;i<A.length/2;i++){
int temp = A[A.length-i-1];
A[A.length-i-1] = A[i];
A[i] = temp;
}
return A;
}
private static void print(int[] A){
for(int i=0;i<A.length;i++)
System.out.print(A[i]+" ");
}
}
|