#include <stdio.h>
int f(int n,int m)
{
if(n==0) //如果左边没有车返回1
return 1;
if(m==0) //如果检车站没车就入栈
return f(n-1,1);
if(m>0)//如果检车站有车
//分两种情况,车辆入站和出站
return f(n-1,m+1)+f(n,m-1);
return 0;
}
int main()
{
printf("%d",f(16,0));
return 0;
}
int gcd(int a, int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
// 这是屏幕上显示的那个分数 a/b
int a = 7;
int b = 13;
int m,n;
int max_a = 0;
int max_b = 1;
for(n=100; n>1; n--){
for(m=n-1; m>=1; m--){
if(m*b<a*n && gcd(m,n)==1){
if( max_a*n<max_b*m){ //填空
max_a = m;
max_b = n;
break;
}
}
}
}
printf("%d/%d\n", max_a, max_b);
return 0;
}
8题 excel 地址
import java.util.*;
public class Main007_Excel地址 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a = in.nextInt();
String str = "ZABCDEFGHIJKLMNOPQRSTUVWXY";
StringBuffer sb = new StringBuffer();
while(a>0) {
if(a%26==0) {
sb.append(str.charAt(a%26));
a=a-26;
}else {
sb.append(str.charAt(a%26));
}
a=a/26;
}
sb.reverse();
System.out.println(sb);
}
}
9题 日期问题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String data[]=bf.readLine().split("\\/");
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
"yyyy-MM-dd");//用于格式化时间
ArrayList<Date> list=new ArrayList<Date>();
//如果有00,那么00根据范围和常理没有00月和00日所以必为2000
if (data[0].equals("00")||data[1].equals("00")||data[2].equals("00")) {
Date d9;
Date d10;
if (data[0].equals("00")) {
d9=new Date("2000"+"/"+data[1]+"/"+data[2]);
d10=new Date("2000"+"/"+data[2]+"/"+data[1]);
}else if(data[1].equals("00")){
d9=new Date("2000"+"/"+data[0]+"/"+data[2]);
d10=new Date("2000"+"/"+data[2]+"/"+data[0]);
}else {
d9=new Date("2000"+"/"+data[0]+"/"+data[1]);
d10=new Date("2000"+"/"+data[1]+"/"+data[0]);
}
list.add(d9);
list.add(d10);
}else {
//年月日
Date d1=new Date("19"+data[0]+"/"+data[1]+"/"+data[2]);
Date d2=new Date("20"+data[0]+"/"+data[1]+"/"+data[2]);
//日月年
Date d3=new Date("19"+data[2]+"/"+data[1]+"/"+data[0]);
Date d4=new Date("20"+data[2]+"/"+data[1]+"/"+data[0]);
//日年月
Date d5=new Date("19"+data[2]+"/"+data[0]+"/"+data[1]);
Date d6=new Date("20"+data[2]+"/"+data[0]+"/"+data[1]);
list.add(d1);
list.add(d2);
list.add(d3);
list.add(d4);
list.add(d5);
list.add(d6);
}
Date start=new Date("1960/01/01");
Date end=new Date("2059/12/31");
//去重
ArrayList<Date> list2=new ArrayList<Date>();
for (int i = 0; i < list.size(); i++) {
if (!list2.contains(list.get(i))) {
list2.add(list.get(i));
}
}
//排序后将符合时间段的日期输出
Collections.sort(list2);
for (int i = 0; i < list2.size(); i++) {
if (list2.get(i).compareTo(start)==1&&list2.get(i).compareTo(end)==-1) {
String temp=format.format(list2.get(i));
if (temp.contains(data[0])&&temp.contains(data[1])&&temp.contains(data[2])) {
System.out.println(format.format(list2.get(i)));
}
}
}
}
}
11题一步之遥
97
using namespace std;
const int N=505;
const int inf=0x3f3f3f3f;
typedef long long ll;
int n,m,ans;
char a[N][N];
void dfs(int i,int j,int an,int am){
//printf("%d %d %d %d\n",i,j,an,am);
if(an==0&&am==0) {
ans++;
return;
}
int x,y;
if(i==j) x=i+1,y=1;
else x=i,y=j+1;
if(j==1){
if(an-1>=0){
a[i][j]='A';
dfs(x,y,an-1,am);
}
if(am-1>=0){
a[i][j]='B';
dfs(x,y,an,am-1);
}
}
else {
if(a[i-1][j-1]=='A'){
if(a[i][j-1]=='B'){
if(am-1>=0){
a[i][j]='B';
dfs(x,y,an,am-1);
}
}
else {
if(an-1>=0){
a[i][j]='A';
dfs(x,y,an-1,am);
}
}
}
else {
if(a[i][j-1]=='B'){
if(an-1>=0){
a[i][j]='A';
dfs(x,y,an-1,am);
}
}
else {
if(am-1>=0){
a[i][j]='B';
dfs(x,y,an,am-1);
}
}
}
}
}
int main()
{
int i,j,k,x,y;
scanf("%d %d",&n,&m);
dfs(1,1,n,m);
printf("%d",ans);
return 0;
}
13题 七星填空