一、
题目描述
代码实现
public class demo1 {
public static void main(String[] args) {
int strength=10000;
int t=0; //记录时间,单位为分钟
boolean flag=true;
while (true){
if(strength<600 && flag)
break;
if(flag){
strength-=600;
flag=false;
}else {
strength+=300;
flag=true;
}
t++;
}
System.out.println(t*60+strength/10);
}
}
答案
3880
二、
题目描述
分析
对于一个大于1正整数n可以分解质因数:
则n的正约数的个数就是
其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。
代码实现
public class demo2 {
public static void main(String[] args){
int a[]=new int[98];//存放每个质数的次数,97是100以内最小的质数
for(int i=2;i<=100;i++)//分别求100!的每一个数的质因数
{
int j=2;
int x=i;
while (j!=x){
if(x%j==0)
{
a[j]++;
x=x/j;
}
else
j++;
}
a[j]++;
}
long sum=1;
for(int b=2;b<=97;b++)
{
System.out.println(a[b]);
if(a[b]!=0)
sum=(a[b]+1)*sum;
}
System.out.println(sum);
}
}
结果
39001250856960000
三、
题目描述
分析
n个不同元素进栈,出栈顺序不同排列的个数为
答案
35357670
四、
题目描述
public class demo6 {
static int ans=0;
static int n=0;
static int[] arr=new int[10005];
static boolean[] arr2=new boolean[10005];
public static void main(String[] args) {
find();
for(int i=2;i<=10000;i=i+2)
{
for(int j=0;j<n;j++)
{
boolean flag=false;
for(int k=j+1;k<n;k++)
{
if(arr[j]+arr[k]==i)
{
ans=Math.max(ans,arr[j]);
flag=true;
}
}
if(flag)break;
}
}
System.out.println(ans);
}
private static void find() {
for(int i=2;i<=10000;i++)
{
if(!arr2[i])
{
int j=2;
while(i*j<=10000) {
arr2[i*j]=true;
j++;
}
}
}
for(int i=2;i<=10000;i++)
if(!arr2[i]) arr[n++]=i;
}
}
五、
题目描述
public class demo5 {
public static int count=0;
public static int a[]={1,2,3,4,5,6,7,8,9,10};
public static void main(String[] args) {
dfs(0);
System.out.println(count);
}
public static void dfs(int index)
{
if(index==a.length)
{
if(check(a))
count++;
return;
}
for(int i=index;i<10;i++)
{
swap(a,i,index);
dfs(index+1);
swap(a,i,index);
}
}
public static void swap(int[] A, int i, int j) {
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
private static boolean check(int[] arr) {
// TODO Auto-generated method stub
for (int i = 0; i < arr.length; i++) {
if (i==0&&isfriend(arr[i],arr[i+1])) {
return false;
}
if (i==arr.length-1&&isfriend(arr[i],arr[i-1])) {
return false;
}
if (i>0&&i<arr.length-1&&(isfriend(arr[i],arr[i+1])||isfriend(arr[i],arr[i-1]))) {
return false;
}
}
return true;
}
private static boolean isfriend(int i, int j) {
// TODO Auto-generated method stub
return Math.abs(i-j)==1;
}
}
答案
479306
六、
题目描述
代码
public class demo4 {
public static void main(String[] args) {
for(int i=1;i<10000;i++)
{
if((i-1)%5==0)
{
int a=(i-1)/5*4;
if((a-2)%5==0)
{
int b=(a-2)/5*4;
if((b-3)%5==0)
{
int c=(b-3)/5*4;
if((c-4)%5==0)
{
int d=(c-4)/5*4;
if(d%5==0 &&d!=0)
{
System.out.println(i);
}
}
}
}
}
}
}
}
答案
3141
七
题目描述
代码
import java.util.Scanner;
public class demo7 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int max1=1;
int max2=0;
for(int i=100;i>1;i--)
{
for(int j=i-1;j>=1;j--)
{
if(gong(i,j)==1 && i*a>b*j)
{
if(i*max2<j*max1)
{
max1=i;
max2=j;
}
}
}
}
System.out.println(max2+"/"+max1);
}
public static int gong(int i,int j)
{
int m;
while (j!=0)
{
m=i%j;
i=j;
j=m;
}
return i;
}
}
八
题目描述
import java.util.Scanner;
public class demo8 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
StringBuffer s=new StringBuffer();
int b;
int c[]=new int[100];
int i=0;
while (a>=26)
{
b=a%26;
a=a/26;
c[i]=b;
i++;
}
c[i]=a;
for(int j=i;j>=0;j--) {
//System.out.println(c[j]);
switch (c[j])
{
case 0:s.append("");break;
case 1:s.append("A");break;
case 2:s.append("B");break;
case 3:s.append("C");break;
case 4:s.append("D");break;
case 5:s.append("E");break;
case 6:s.append("F");break;
case 7:s.append("G");break;
case 8:s.append("H");break;
case 9:s.append("I");break;
case 10:s.append("J");break;
case 11:s.append("K");break;
case 12:s.append("L");break;
case 13:s.append("M");break;
case 14:s.append("N");break;
case 15:s.append("O");break;
case 16:s.append("P");break;
case 17:s.append("Q");break;
case 18:s.append("R");break;
case 19:s.append("S");break;
case 20:s.append("T");break;
case 21:s.append("U");break;
case 22:s.append("V");break;
case 23:s.append("W");break;
case 24:s.append("X");break;
case 25:s.append("Y");break;
case 26:s.append("Z");break;
}
}
String z=String.valueOf(s);
System.out.println(z);
}
}
九
题目描述
代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
public class demo9 {
public static TreeSet<Integer> set=new TreeSet<Integer>();
public static List<Integer> list=new ArrayList<Integer>();
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String s=in.nextLine();
String a=s.substring(0,2);
String b=s.substring(3,5);
String c=s.substring(6,s.length());
date1(a,b,c);
date1(c,a,b);
date1(c,b,a);
list.addAll(set);
for(int i=0;i<list.size();i++) {
String ans = ""+list.get(i);
System.out.println(ans.substring(0, 4)+"-"+ans.substring(4,6)+"-"+ans.substring(6,ans.length()));
}
}
public static void date1(String a,String b,String c)
{
int y=Integer.parseInt(a);
int m=Integer.parseInt(b);
int d=Integer.parseInt(c);
if(y>=60 && y<100)
y=y+1900;
else if(y<=59 && y>=0)
y=y+2000;
if((y%4==0 && y%100!=0) || y%400==0 && m==2 && d>0 && d<=29)
{
set.add(Integer.parseInt(""+y+b+c));
}
if(y%4!=0 && m==2 && d>0 &&d<=28) {
set.add(Integer.parseInt(""+y+b+c));
}
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12) && d>0 && d<=31) {
set.add(Integer.parseInt(""+y+b+c));
}
if((m==4|| m==6|| m==9|| m==11) && d>0&&d<=30) {
set.add(Integer.parseInt(""+y+b+c));
}
}
}
十
题目描述
代码
import java.util.Scanner;
class demo10{
public static void main(String[] args) {
int n;
int sum;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
sum = resolve(n,n);
System.out.println(sum);
}
public static int resolve(int a,int max) {
if(a == 1||max ==1)
return 1;
if(a == max)
return resolve(a,max-1)+1;
if(a > max)
return resolve(a,max-1)+resolve(a-max,max);
if(a < max)
return resolve(a,a);
else return 0;
}
}
十一
题目描述
代码
public class demo11 {
public static void main(String[] args) {
for(int i=1;i<1000;i++)
{
for(int j=1;j<1000;j++)
{
if((i*97-j*127)==1)
System.out.println(i+" "+j);
}
}
}
}
答案
97
十二
题目描述
代码
package lan;
import java.util.Scanner;
public class demo12 {
public static int M,N;
public static int num=0;
public static int shuzu[][];
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
M=in.nextInt();
N=in.nextInt();
int a= (int) ((Math.sqrt(1+4*2*(M+N))-1)/2);
shuzu=new int[a][a];
dfs(0);
System.out.println(num);
}
public static void dfs(int index)
{
if(index==shuzu.length)
{
if(check())
num++;
return;
}
int b[]={0,1};
for(int i=0;i<b.length;i++)
{
shuzu[shuzu.length-1][index]=b[i];
dfs(index+1);
shuzu[shuzu.length-1][index]=0;
}
}
public static boolean check()
{
int count[]=new int[2];
for(int c=0;c<shuzu.length;c++)
{
count[shuzu[shuzu.length-1][c]]++;
if(count[0]>M || count[1]>N)
return false;
}
for(int j=shuzu.length-2;j>=0;j--)
{
for(int k=0;k<=j;k++)
{
shuzu[j][k]=shuzu[j+1][k]^shuzu[j+1][k+1];
count[shuzu[j][k]]++;
if(count[0]>M && count[1]>N)
return false;
}
}
if (count[0] == M && count[1] == N) {
return true;
}else {
return false;
}
}
}
十三
题目描述
代码
import java.util.HashSet;
public class as {
public static int sum = 0;
public static void swap(int[] A, int i, int j) {
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
public static void dfs(int[] A, int step) {
if(step == A.length) {
int[] count = new int[7];
count[0] = A[0] + A[1] + A[2] + A[3];
count[1] = A[0] + A[4] + A[6] + A[9];
count[2] = A[1] + A[4] + 6 + 14;
count[3] = A[2] + A[5] + 6 + 11;
count[4] = A[6] + A[8] + A[10] + 14;
count[5] = A[7] + A[8] + A[9] + 11;
count[6] = A[3] + A[5] + A[7] + A[10];
HashSet<Integer> set = new HashSet<Integer>();
for(int i = 0;i < 7;i++)
set.add(count[i]);
if(set.size() == 1) {
for(int i = 0;i < A.length;i++)
System.out.print(A[i]+" ");
System.out.println();
}
sum++;
return;
} else {
for(int i = step;i < A.length;i++) {
swap(A, i, step);
dfs(A, step + 1);
swap(A, i, step);
}
}
}
public static void main(String[] args) {
int[] A = {1,2,3,4,5,7,8,9,10,12,13};
dfs(A, 0);
System.out.println(sum);
}
}