java课程设计习题解答


前言


提示:以下是本篇文章正文内容,下面案例可供参考

1001

求公倍数和公约数

import java.util.Scanner;

public class Main {
    
    
public static void main(String[] args) {
    
    
	Scanner reader=new Scanner(System.in);
	int n,m;
	n=reader.nextInt();
	m=reader.nextInt();
	calc c=new calc();
	System.out.printf("%d %d",c.gcd(n,m),(n*m)/c.gcd(n,m));
}
}
class calc{
    
    
	int gcd(int a,int b) {
    
    
		if(b==0) {
    
    
			return a;
		}
		return gcd(b,a%b);
	}
}

1002

阶乘之和

import java.util.Scanner;

public class Main {
    
    
public static void main(String[] args) {
    
    
	Scanner reader=new Scanner(System.in);
	while(reader.hasNext()) {
    
    
		int n=0,sum=0;
		n=reader.nextInt();
		for(int i=1;i<=n;i++) {
    
    
			int b=1;
			for(int j=1;j<=i;j++) {
    
    
				b*=j;
			}
			sum+=b;
		}
		System.out.println(sum);
	}
}
}

1003

进制转换

1.手写


import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		while(reader.hasNext()) {
    
    
		int n=10,dec=0,num=0;
		calca c=new calca();
		String str;
		str=reader.next();
		char []str1=str.toCharArray();
		int []output=new int[33];
		int m=reader.nextInt();
		for(int i=0;i<str.length();i++) {
    
    
			if(str1[i]=='-') {
    
    
				System.out.printf("-");
				continue;
				}
			dec=dec*n+c.char_to_int(str1[i]);
		}
		while(dec!=0) {
    
    
			output[num++]=dec%m;
			dec/=m;
		}
		for(int i=num-1;i>=0;i--) {
    
    
			System.out.printf("%c",c.int_to_char(output[i]));
		}
		System.out.printf("\n");
	}
  }
}
class calca{
    
    
	int char_to_int(char a){
    
    
	    return a>='0'&&a<='9'?a-'0':10+a-'A';
	}
	char int_to_char(int a){
    
    
	    return (char) (a<=9?a+'0':a-10+'A');
	}
}

2.API


import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		while(reader.hasNext()) {
    
    
		int m=reader.nextInt();
		int x=reader.nextInt();
		String str1=Integer.toString(m, x);
		System.out.println(str1.toUpperCase());
		}
	}
}

1004

数位递增

代码如下(示例):

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader =new Scanner(System.in);
		int n=reader.nextInt();
		int count=0;
		for(int i=1;i<=n;i++) {
    
    
			int t=10,flag=0,j=i;
			while(j!=0) {
    
    
				if(j%10>t) {
    
    
					flag=1;
				}
				t=j%10;
				j/=10;
			}
			if(flag==0) {
    
    
				count++;
			}
		}
		System.out.println(count);
}
}

1005

超级楼梯
代码如下(示例):

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		int n=reader.nextInt();
		for(int i=1;i<=n;i++) {
    
    
			int f[]=new int[100000];
			f[1]=1;f[2]=1;
			int m=reader.nextInt();
			for(int j=3;j<=m;j++) {
    
    
			f[j]=f[j-1]+f[j-2];
			}
			System.out.println(f[m]);
		}
	}
}

1006

统计字母、数字、空格个数

import java.util.Scanner;

public class Main {
    
    
public static void main(String[] args) {
    
    
	Scanner reader=new Scanner(System.in);
	reader.useDelimiter("\n");
	while(reader.hasNext()) {
    
    
	String str;
	int a=0,b=0,c=0,d=0;
	str=reader.nextLine();
	char []str1=str.toCharArray();
	for(int i=0;i<str1.length;i++) {
    
    
		if((str1[i]>='a'&&str1[i]<='z')||(str1[i]>='A'&&str1[i]<='Z')) {
    
    
			a++;
		}
		else if(str1[i]>='0'&&str1[i]<='9') {
    
    
			b++;
		}
		else if(str1[i]==' ') {
    
    
			c++;
		}else {
    
    
			d++;
		}
	}
	System.out.printf("%d %d %d %d\n",a,b,c,d);
}
}
}

1007

筛法求素数

import java.util.Scanner;
 
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner reader=new Scanner(System.in);
        int []prime=new int[100000];
        int []vis=new int[100000];
        int n=10000;
        vis[0]=1;
        vis[1]=1;
        for(int i=2;i<=n;i++){
    
    
            if(vis[i]==0){
    
    
                vis[i]=1;
                prime[++prime[0]]=i;
            }
            for(int j=1;j<=prime[0]&&i*prime[j]<=n;j++){
    
    
                vis[i*prime[j]]=1;
                if(i%prime[j]==0) break;
            }
        }
        while(reader.hasNext()){
    
    
        int x=reader.nextInt();
        System.out.printf("%d\n",prime[x]);
        }
    }
}

1008

数字转拼音


import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		long n;
		long []input=new long[50];
		int m=0;
		n=reader.nextLong();
		while(n!=0){
    
    
			input[m++]=n%10;
			n/=10;
		}
		StringBuffer str=new StringBuffer();
		int flag=0;
		for(int i=m-1;i>=0;i--){
    
    
			if(m>=9&&input[8]!=0) flag=1;
			if(input[i]==0) {
    
    
				if((i+1)==5) str.append("wan ");
				if((i>=1&&input[i-1]!=0)) {
    
    
				str.append("ling ");}		
			}
			if(input[i]==1&&(i+1)!=10&&(i+1!=2||m>2)&&m!=6) str.append("yi ");	
			if(input[i]==2) str.append("er ");
			if(input[i]==3) str.append("san ");
			if(input[i]==4) str.append("si ");
			if(input[i]==5) str.append("wu ");
			if(input[i]==6) str.append("liu ");
			if(input[i]==7) str.append("qi ");
			if(input[i]==8) str.append("ba ");
			if(input[i]==9) str.append("jiu ");
			if((i+1)==2&&input[i]!=0) str.append("shi ");
			if((i+1)==3&&input[i]!=0) str.append("bai ");
			if((i+1)==4&&input[i]!=0) str.append("qian ");
			if((i+1)==5&&input[i]!=0) str.append("wan ");
			if((i+1)==6&&input[i]!=0) str.append("shi ");
			if((i+1)==7&&input[i]!=0) str.append("bai ");
			if((i+1)==8&&input[i]!=0) str.append("qian ");
			if((i+1)==9&&input[i]!=0) str.append("yi ");
			if((i+1)==10&&input[i]!=0&&flag!=1) str.append("shi yi");
			if((i+1)==10&&input[i]!=0&&flag==1) str.append("shi ");
		}
		String str1=str.toString().trim();
		System.out.println(str1);
	}
}

1009

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
	String m="";
	for(int i=1;i<=500;i++) {
    
    
		m=m+String.valueOf(i);
	}
	Scanner reader=new Scanner(System.in);
	System.out.println(m.indexOf(reader.nextLine())+1);
	}
}

1011

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		double m=reader.nextInt();
		double n=reader.nextInt();
		double x=Math.pow(Math.E,Math.log(n/m)/20)-1;
		System.out.printf("%.4f",x);
	}
}

1012

public BigDecimal(BigInteger unscaledVal, int scale)将未BigInteger缩放的值和int比例转换为BigDecimal.价值BigDecimal是unscaledVal/10^scale.
参数:
unscaledVal- 未缩放的价值BigDecimal.
scale- 规模BigDecimal.

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		BigInteger a=BigInteger.ONE;
		BigInteger b=BigInteger.ONE;
		for(int i=3;i<=500;i++){
    
    
			BigInteger t=b;
			b=a.add(b);
			a=t;
		}
		BigDecimal divide=new BigDecimal(a,100).divide(new BigDecimal(b,100),RoundingMode.HALF_DOWN);
		System.out.printf("%.80f",divide);
		
	}
}

1013

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader =new Scanner(System.in);
		int n=reader.nextInt();
		calculate c=new calculate();
		int flag=-1;
		int fz=1,fm=1;
		int z=1,m;
		for(int i=1,j=1;i<=n&&j<=n;i++,j++) {
    
    
			if(i==1&&j==1) continue;
			if(i>=2) z=i-1;
			m=j;
			if(fm!=c.lcm(fm, m))
			fz=fz*c.lcm(fm, m)/fm;
			if(m!=c.lcm(fm, m))
			z=z*c.lcm(fm, m)/m;
			fz=fz+z*flag;
			fm=c.lcm(fm, m);
			m=c.lcm(fm, m);
			flag=-flag;
		}
		System.out.printf("%d/%d",fz,fm);
	}
}
class calculate{
    
    
	int gcd(int a,int b) {
    
    
		if(b==0) {
    
    
			return a;
		}
		return gcd(b,a%b);
	}
	int  lcm(int a,int b) {
    
    
		return a*b/gcd(a,b);
	}
}

1014

星系炸弹

1.手写

import java.util.Scanner;

public class Main {
    
    
public static void main(String[] args) {
    
    
	Scanner reader=new Scanner(System.in);
	while(reader.hasNext()) {
    
    
	int year=2014,month=11,day=9;
	int y_month[]= {
    
    0,31,28,31,30,31,30,31,31,30,31,30,31};
	int n=reader.nextInt();
	for(int i=1;i<=n;i++) {
    
    
		day++;
		if((year%4==0&&year%100!=0)||(year%400==0)) {
    
    
			y_month[2]=29;
		}
		else {
    
    
			y_month[2]=28;
		}
		if(day>y_month[month]) {
    
    
			day=1;
			month++;
		}
		if(month>12) {
    
    
			month=1;
			year++;
		}
	}
	System.out.println(String.format("%d-%2d-%2d",year,month,day).replace(" ", "0"));
}
}

}

2. 调用API

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner reader=new Scanner(System.in);
		while(reader.hasNext()) {
    
    
			int n=reader.nextInt();
			Calendar calendar = Calendar.getInstance();
			calendar.set(2014,10,9);  //设置日期    其中月份在日期中保存为 0-11代表1月-12月
			calendar.add(calendar.DATE,n);    //由当前日期向后查询 多少天
			Date date = calendar.getTime();    //将日期类转化为date类型
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //设置格式化输出的样式   yyyy-MM-dd HH:mm:ss   yyyy年MM月dd日 HH时mm分ss秒 ymdhms分别都是代表首字符,一般用M代表月,m代表分

			System.out.println(sdf.format(date));
		}
	}
}

1015

同余定理

2个不同的整数a、b,被一个整数m相除时,得到相同的余数,那么我就可以称a、b同余。
因为a、b同余所以当他们相减时,余数就抵消掉了,剩下的那部分就是能被m整除的。

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		while(n-->0){
    
    
			long m = scan.nextLong();
			System.out.println((471+1000*(m-1))); 
		}
	}
}

1016

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		int n;
		long count=0;
		long sum=1;
		Scanner reader=new Scanner(System.in);
		n=reader.nextInt();
		for(int i=1;i<=n;i++){
    
    
			count=0;
		for(int j=0;j<=9;j++){
    
    
			if(i==1&&j==0||j==4) continue;
			count++;
		}
		sum*=count;
		//System.out.println(count);
	}
		
		System.out.println(sum);
}
}

猜你喜欢

转载自blog.csdn.net/qq_45879198/article/details/117693551
今日推荐