Compare commits
1 Commits
main
...
CourseCode
Author | SHA1 | Date |
---|---|---|
ProgramLight | f96297aa6e |
|
@ -0,0 +1,22 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//输入n和n-1个整数,输出只出现1次的个数
|
||||||
|
public class LQ_008 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int n,ans=0;//读入几个数
|
||||||
|
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
n=sc.nextInt();
|
||||||
|
ans=0;
|
||||||
|
for(int i=0;i<n;i++) {
|
||||||
|
ans=ans^sc.nextInt();
|
||||||
|
}
|
||||||
|
System.out.print(ans);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//判断一个整数n是否为2^x
|
||||||
|
public class _2的幂的判断 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()){
|
||||||
|
int n=sc.nextInt();
|
||||||
|
System.out.println((n&(n-1))==0?"YES":"NO");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class n的约数的个数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int n=sc.nextInt();
|
||||||
|
int ans=-0;
|
||||||
|
for(int i=1;i*i<=n;i++) {
|
||||||
|
if(i*i==n)
|
||||||
|
ans++;
|
||||||
|
else
|
||||||
|
ans+=2;
|
||||||
|
}
|
||||||
|
System.out.print(ans);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 小赵对进制特别感兴趣,不光研究2进制,3进制,4进制,5进制...,突然有一次,
|
||||||
|
* 他发现了一个特殊的数2992,这个数,它的十进制数表示,其四位数字之和为
|
||||||
|
2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,
|
||||||
|
其四位数字之和也为22,啊哈,真是巧啊。
|
||||||
|
之后他就去翻书,发现这种数叫sky
|
||||||
|
数。但是要判断这样的敛还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。
|
||||||
|
输入
|
||||||
|
输入含有一些小于100000000正整数,如果为0,则输入结束。
|
||||||
|
输出
|
||||||
|
若n为Sky数,则输出“#n is a Sky Number..”,否则输出“#n is not a Sky Number..”。
|
||||||
|
每个结果占一行。注意:#n表示所读入的n值。*/
|
||||||
|
public class sky数判断 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int n=sc.nextInt();
|
||||||
|
if(Getsum(n,10)==Getsum(n,12)&&Getsum(n,10)==Getsum(n,16))
|
||||||
|
System.out.println(n+" is a Sky Number..");
|
||||||
|
else
|
||||||
|
System.out.println(n+" is not a Sky Number..");
|
||||||
|
|
||||||
|
}
|
||||||
|
public static int Getsum(int n,int r) {
|
||||||
|
int sum=0;
|
||||||
|
while(n>0) {
|
||||||
|
sum+=n%r;
|
||||||
|
n/=r;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
//3个数求最大值
|
||||||
|
public class 三个数求最大值 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int a=sc.nextInt();
|
||||||
|
int b=sc.nextInt();
|
||||||
|
int c=sc.nextInt();
|
||||||
|
System.out.println("1:"+Get_Max1(a,b,c));
|
||||||
|
System.out.println("2:"+Get_Max2(a,b,c));
|
||||||
|
System.out.println("3:"+Get_Max3(a,b,c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
//系统类库
|
||||||
|
static int Get_Max3(int a, int b, int c) {
|
||||||
|
return Math.max(Math.max(a, b), c);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Get_Max2(int a, int b, int c) {
|
||||||
|
int max=a;
|
||||||
|
if(b>max)
|
||||||
|
max=b;
|
||||||
|
if(c>max)
|
||||||
|
max=c;
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Get_Max1(int a,int b,int c) {
|
||||||
|
if(a>b) {
|
||||||
|
if(a>c)
|
||||||
|
return a;
|
||||||
|
else
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(b>c)
|
||||||
|
return b;
|
||||||
|
else
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//两数交换
|
||||||
|
public class 两数交换 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int a=sc.nextInt();
|
||||||
|
int b=sc.nextInt();
|
||||||
|
//异或思想
|
||||||
|
a=a^b;
|
||||||
|
b=a^b;
|
||||||
|
a=a^b;
|
||||||
|
System.out.print("a="+a+" b="+b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
//要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。
|
||||||
|
public class 埃氏筛法 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int n=10000;
|
||||||
|
boolean isprime[]=new boolean[n+1];
|
||||||
|
Arrays.fill(isprime, true);//假定全部都是素数
|
||||||
|
//判断特殊情况:0 1
|
||||||
|
isprime[0]=false;
|
||||||
|
isprime[1]=false;
|
||||||
|
|
||||||
|
for(int i=2;i*i<=n;i++) {
|
||||||
|
if(isprime[i]==true)
|
||||||
|
for(int j=2;i*j<=n;j++) //是素数的2i,3i,4i....倍
|
||||||
|
isprime[i*j]=false;
|
||||||
|
}
|
||||||
|
int count=0;
|
||||||
|
for(int i=2;i<=n;i++) {
|
||||||
|
if(isprime[i]==true) {
|
||||||
|
count++;
|
||||||
|
System.out.println(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.printf("从1到%d,共有%d个素数", n,count);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
|
||||||
|
public class 大数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String num="FF";//num当作16进制,那么对应的就是10进制的255
|
||||||
|
System.out.println(BigInteger.ONE);
|
||||||
|
BigInteger a=new BigInteger("9527");
|
||||||
|
System.out.println("a:"+a);
|
||||||
|
//将num转化为二进制
|
||||||
|
BigInteger b=new BigInteger(num,16);
|
||||||
|
System.out.println("b的十六进制为:"+b);
|
||||||
|
//将b转化为八进制
|
||||||
|
System.out.println("b的八进制为:"+b.toString(8));
|
||||||
|
//将b转化为二进制
|
||||||
|
System.out.println("b的二进制为:"+b.toString(2));
|
||||||
|
//a+b a.add(b)=9527+255
|
||||||
|
System.out.println("a+b="+a.add(b));
|
||||||
|
//a-b a.subtract(b)=9527-255 a的值没有变
|
||||||
|
System.out.println("a-b="+a.subtract(b));
|
||||||
|
//a*b
|
||||||
|
System.out.println("a*b="+a.multiply(b));
|
||||||
|
//a/b
|
||||||
|
System.out.println("a/b="+a.divide(b));
|
||||||
|
//a%b
|
||||||
|
System.out.println("a%b="+a.mod(b));
|
||||||
|
//a b的最大公约数
|
||||||
|
System.out.println("a b的最大公约数:"+a.gcd(b));
|
||||||
|
//判断a是否为素数
|
||||||
|
System.out.println("a是否为素数:"+a.isProbablePrime(10));
|
||||||
|
//a^b%p
|
||||||
|
BigInteger two=new BigInteger("2");
|
||||||
|
//10^2%13=9
|
||||||
|
System.out.println("10^2%13="+BigInteger.TEN.modPow(two, new BigInteger("13")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package Course_Codes;
|
||||||
|
//输出集合{1,2,3,4}的所有子集
|
||||||
|
public class 子集输出 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int [] a= {1,2,3,4};
|
||||||
|
for(int i=0;i<15;i++) {
|
||||||
|
System.out.print("{");
|
||||||
|
int n=i;//存储当前需要转换成二进制的i
|
||||||
|
int index=0;//当前是第几次除以2
|
||||||
|
while(n>0) {
|
||||||
|
if(n%2==1) {
|
||||||
|
if(n>2)
|
||||||
|
System.out.print(a[index]+",");
|
||||||
|
else
|
||||||
|
System.out.print(a[index]);
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
n/=2;
|
||||||
|
}
|
||||||
|
System.out.println("}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/*不采用内置函数的是因为其只返回其值,没有补零*/
|
|
@ -0,0 +1,28 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
|
//基于 BufferedReader 的Java快读快读演示
|
||||||
|
public class 快读演示 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//System.in:读取字节流 InputStreamReader字节流->字符流转换的一个桥梁
|
||||||
|
//BufferedReader类:从字符输入流中带缓存功能的读取字符,readline()按行读取字符串
|
||||||
|
//eg:
|
||||||
|
//37 65
|
||||||
|
//74 415
|
||||||
|
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
String line="";//每次从in里面读取一行字符串
|
||||||
|
try {
|
||||||
|
while((line=in.readLine())!=null){//只要还有行就继续读取,每次读取一行放到line字符串里
|
||||||
|
String[] s=line.split(" +");//+表示会将多个空格看成一个空格
|
||||||
|
int a=Integer.parseInt(s[0]);
|
||||||
|
int b=Integer.parseInt(s[1]);
|
||||||
|
System.out.println(a+b);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//小明只认识100以内的数,如果是大于100的数,他只会拿这个数的后两位重算。
|
||||||
|
public class 数位拆分 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int a=sc.nextInt();
|
||||||
|
int b=sc.nextInt();
|
||||||
|
int sum=0;
|
||||||
|
sum=(a%100+b%100)%100;
|
||||||
|
System.out.print(sum);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
//整数翻转
|
||||||
|
public class 整数翻转 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int n=sc.nextInt();//整数翻转
|
||||||
|
/* int sum=0;
|
||||||
|
while(n>0) {
|
||||||
|
//(输出法1)System.out.print(n%10);
|
||||||
|
sum=sum*10+n%10;//sum扩大10倍+尾数
|
||||||
|
n=n/10;
|
||||||
|
}
|
||||||
|
System.out.print(sum);//(输出法2) */
|
||||||
|
//法三:系统类库
|
||||||
|
System.out.println(new StringBuffer(String.valueOf(n)).reverse().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package Course_Codes;
|
||||||
|
/*
|
||||||
|
* 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
|
||||||
|
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。
|
||||||
|
请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)?*/
|
||||||
|
public class 既约分数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int count=0;
|
||||||
|
int n=2020;
|
||||||
|
for(int i=1;i<=n;i++) {
|
||||||
|
for(int j=1;j<=n;j++) {
|
||||||
|
if(Gcd(i,j)==1) {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.print(count);
|
||||||
|
}
|
||||||
|
//辗转相除法:计算公式gcd(a,b) = gcd(b,a mod b)。
|
||||||
|
public static int Gcd(int a,int b) {
|
||||||
|
//当b为0时,a就是他的们间的最大公约数
|
||||||
|
return b==0?a:Gcd(b,a%b);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
|
||||||
|
public class 求100阶乘0的个数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int n=10;
|
||||||
|
Fun(n);
|
||||||
|
Fun2(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Fun(int n) {
|
||||||
|
BigInteger a=new BigInteger("1");
|
||||||
|
for(int i=1;i<=n;i++) {
|
||||||
|
//a为BigInteger 类型,因此不可用a*=i;
|
||||||
|
a=a.multiply(BigInteger.valueOf(i));
|
||||||
|
|
||||||
|
}
|
||||||
|
String s=a.toString();//s=100!的值
|
||||||
|
System.out.println(s);
|
||||||
|
int count=0;
|
||||||
|
for(int i=s.length()-1;i>=0;i--) {
|
||||||
|
if(s.charAt(i)!='0')//找到第一个非0的数
|
||||||
|
break;
|
||||||
|
count++;//记录0的个数
|
||||||
|
}
|
||||||
|
System.out.println(count);
|
||||||
|
}
|
||||||
|
//数学方法
|
||||||
|
public static void Fun2(int n) {
|
||||||
|
int ans=0;
|
||||||
|
while(n>0) {
|
||||||
|
//因数中有1个5就有1个0,即计算5的个数
|
||||||
|
ans=ans+n/5;
|
||||||
|
n=n/5;
|
||||||
|
}
|
||||||
|
System.out.println(ans);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//求一个十进制的二进制中含1的个数
|
||||||
|
public class 求二进制中含1个数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int count=0;//n的二进制中1的个数
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int n=sc.nextInt();
|
||||||
|
while(n>0) {
|
||||||
|
n=n&(n-1);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
System.out.println(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
//求两个数的最大公约数
|
||||||
|
public class 求最大公约数 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int a=sc.nextInt();
|
||||||
|
int b=sc.nextInt();
|
||||||
|
System.out.println("欧几里得:"+Gcd1(a,b));
|
||||||
|
System.out.println("递归:"+Gcd(a,b));
|
||||||
|
|
||||||
|
}
|
||||||
|
//Gcd=最大公约数
|
||||||
|
public static int Gcd(int a,int b) {
|
||||||
|
return b==0?a:Gcd(b,a%b);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int Gcd1(int a,int b) {
|
||||||
|
while(b>0) {
|
||||||
|
int temp=a%b;
|
||||||
|
a=b;
|
||||||
|
b=temp;//Gcd(a,b)=>Gcd(b,a%b)
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package Course_Codes;
|
||||||
|
//打印一个实心圆和一个空心圆
|
||||||
|
public class 穷举 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int r=16;
|
||||||
|
sxy(r);
|
||||||
|
kxy(r);
|
||||||
|
}
|
||||||
|
static void sxy(int r) {
|
||||||
|
for(int y=-r;y<=r;y+=2) {
|
||||||
|
for(int x=-r;x<=r;x++) {
|
||||||
|
if(x*x+y*y<=r*r)
|
||||||
|
System.out.print("*");
|
||||||
|
else
|
||||||
|
System.out.print(" ");
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void kxy(int r) {
|
||||||
|
for(int y=r;y>=-r;y=y-2) {
|
||||||
|
int x=(int)Math.round(Math.sqrt(r*r-y*y));
|
||||||
|
for(int i=1;i<=r-x;i++)
|
||||||
|
System.out.print(" ");
|
||||||
|
System.out.print("*");
|
||||||
|
for(int i=1;i<=2*x;i++)
|
||||||
|
System.out.print(" ");
|
||||||
|
System.out.println("*");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class 素数的判断 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
while(sc.hasNext()) {
|
||||||
|
int n=sc.nextInt();
|
||||||
|
System.out.println(isprime(n)?"Yes":"No");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static Boolean isprime(int n) {
|
||||||
|
//排除特殊情况:0 1
|
||||||
|
if(n<1)
|
||||||
|
return false;
|
||||||
|
//i*i<n 无需从2——n全部遍历,只需遍历其一半即可,
|
||||||
|
for(int i=2;i*i<n;i++)
|
||||||
|
if(n%i==0)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class 计算PI小数点后n位 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int n=1000;
|
||||||
|
PI(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void PI(int n) {
|
||||||
|
BigDecimal qian=BigDecimal.ZERO;//前半部分
|
||||||
|
BigDecimal hou=BigDecimal.ZERO;//后半部分
|
||||||
|
BigDecimal ans=BigDecimal.ZERO;//最后存放pi
|
||||||
|
int jd=1000;//精确到小数点后1000位
|
||||||
|
for(int i=0;i<n;i++) {
|
||||||
|
BigDecimal de5=new BigDecimal("1").divide(new BigDecimal(2*i+1+"")
|
||||||
|
.multiply(new BigDecimal("5").pow(2*i+1)),jd,BigDecimal.ROUND_DOWN);
|
||||||
|
|
||||||
|
BigDecimal de239=new BigDecimal("1").divide(new BigDecimal(2*i+1+"")
|
||||||
|
.multiply(new BigDecimal("239").pow(2*i+1)),jd,BigDecimal.ROUND_DOWN);
|
||||||
|
|
||||||
|
BigDecimal fh=new BigDecimal((i%2==0?1:-1)+"");//判断正负号
|
||||||
|
qian=qian.add(de5.multiply(fh));
|
||||||
|
hou=hou.add(de239.multiply(fh));
|
||||||
|
}
|
||||||
|
ans=new BigDecimal("16").multiply(qian).subtract(new BigDecimal("4").multiply(hou));
|
||||||
|
System.out.println(ans.toString());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package Course_Codes;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
//身份证号合理性验证
|
||||||
|
public class 身份证号合理性验证 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String idCard="";//存储身份证(尾号可能出现X,因此用String)
|
||||||
|
//身份证各数字权值:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
|
||||||
|
int [] w= {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
|
||||||
|
//权值对11取余的值
|
||||||
|
String [] last= {"1","0","X","9","8","7","6","5","4","3","2"};
|
||||||
|
|
||||||
|
System.out.println("Please input your ID:");
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
idCard =sc.nextLine();
|
||||||
|
|
||||||
|
//截取身份证号前17位
|
||||||
|
String id_17=idCard.substring(0,17);
|
||||||
|
|
||||||
|
int sum=0;
|
||||||
|
for(int i=0;i<id_17.length();i++) {
|
||||||
|
//将String类型的身份证号转化为整型
|
||||||
|
int n=Integer.parseInt(id_17.substring(i,i+1));//法2:charAt(i-'0');
|
||||||
|
sum=sum+n*w[i];
|
||||||
|
}
|
||||||
|
System.out.printf("sum=%d,sum=%%11=%d\n",sum,sum%11);
|
||||||
|
if(idCard.substring(17,18).equals(last[sum%11]))
|
||||||
|
System.out.println("Yes");
|
||||||
|
else
|
||||||
|
System.out.print("No");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package Course_Codes;
|
||||||
|
//输入两个9位以内的数,相加求其有多少进位
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class 进位模拟 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc=new Scanner(System.in);
|
||||||
|
int a=sc.nextInt();
|
||||||
|
int b=sc.nextInt();
|
||||||
|
int count=0,temp=0;//count——统计,temp——存放进位
|
||||||
|
for(int i=0;i<9;i++) {
|
||||||
|
temp=(a%10+b%10)>=10?1:0;
|
||||||
|
count+=temp;
|
||||||
|
a/=10;
|
||||||
|
b/=10;
|
||||||
|
}
|
||||||
|
System.out.print(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue