本帖最后由 菜鸟学徒 于 2015-8-3 22:01 编辑
01、 判断101-200之间有多少个素数,并输出所有素数。?
class Demo1
{
public static void main(String[]args)
{
int m=101;
int n=200;
int count=0;
for (int i=m;i<n ;i++ )
{
if(isSuShu(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 isSuShu(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 Demo2
{
public static void main(String[] args)
{
int n = 13;
fen(n);
}
private static void fen(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 Demo3{
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 = String.valueOf(array_Char);
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 Demo4{
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 Demo5{
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 Demo6{
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
int i = 0;
int[] a = new int[5];
do{
a = 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 Demo7{
public static void main(String[] args){
Scanner scan = new Scanner(System.in).useDelimiter("\\D");
System.out.print("请输入三个数:");
int x = scan.nextInt();
int y = scan.nextInt();
int z = scan.nextInt();
scan.close();
System.out.println("排序结果:"+sort(x,y,z));
}
private static String sort(int x,int y,int z){
String s = null;
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 = z;
z = y;
y = t;
}
s = x+" "+y+" "+z;
return s;
}
}
08、利用递归方法求5!。
public class Demo8
{
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.util.*;
public class Demo9
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int a;
do
{
System.out.print("请输入一个5位正整数:");
a = s.nextInt();
}while(a<10000||a>99999);
String ss =String.valueOf(a);
char[] ch = ss.toCharArray();
if(ch[0]==ch[4]&&ch[1]==ch[3])
{
System.out.println("这是一个回文数");
}
else
{
System.out.println("这不是一个回文数");
}
}
}
10、 将一个数组逆序输出,(不能使用API的方法)。
import java.util.Scanner;
class NiShuZu
{
public static void main(String[]args)
{
Scanner s=new Scanner(System.in);
int []a =new int[20];
System.out.println("请输入多个正整数(输入-1表示结束):");
int i=0,j;
do
{
a=s.nextInt();
i++;
}
while (a[i-1]!=-1);
System.out.println("你输入的数组为:");
for ( j=0;j<i-1 ;j++ )
{
System.out.print(a[j]+" ");
}
System.out.println("\n数组逆序输出为:");
for ( j=i-2;j>=0 ;j=j-1 )
{
System.out.print(a[j]+" ");
}
}
}
|