鸡兔同笼
#include<bits/stdc++.h>
using namespace std;
void f(int n);
int n;
int main()
{cin>>n;int x=0;int ma=-1;int mi=1000;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i*2+j*4==n){x=1;ma=max(ma,i+j);mi=min(mi,i+j);}}}if(x==1){cout<<mi<<" "<<ma;}else{cout<<"0 0";}return 0;
}
void f(int n){}
猴子吃桃
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int);
int main()
{int a[1000];a[1]=1;for(int i=0;i<10;i--){a[i]=(a[i-1]+1)*2;}return 0;
}
void f(int n){}
扩号匹配问题
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int,int);
char s[100];
char r[100];
int main()
{cin>>s;int l=strlen(s);for(int i=0;i<l;i++){if(s[i]=='(') cout<<" ";else if(s[i]==')'){r[i]=' ';f(i-1,i);}else r[i]=' ';}cout<<r;return 0;
}
void f(int i,int n){if(r[i]=='$'){r[i]=' ';return;}if(i==-1){r[n]='?';return;}f(i-1,n);
}
上台阶不会
田忌赛马不会
课程冲突
#include<iostream>
using namespace std;
int n,sum=0;
int a[1000];
int f(int);
int main()
{cin>>n;int b[1000];for(int i=0;i<n;i++){cin>>a[i];cin>>b[i];}int ma=-1;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){int s=min(b[i],b[j])-max(a[i],a[j])+1;ma=max(ma,s);}}cout<<ma;return 0;
}
42 点不会
最长下坡不会
放苹果
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
int f(int,int);
int main()
{int m;cin>>n>>m;cout<<f(n,m);return 0;
}
int f(int n,int m){if(m==1||n==0) return 1;if(n==1||m==0) return 1;if(m>n) return f(n,n);if(m<=n) return f(n,m-1)+f(n-m,m);
}
制作蛋糕不会
找和最接近但不超过K的两个元素
#include<bits/stdc++.h>
using namespace std;
void f(int n);
int n;
int main()
{int k;int a[1000]={0};int mi=1000;int h=0;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(a[i]+a[j]<=k){mi=min(mi,a[i]-a[j],a[j]-a[i]);if(mi/1!=0){h=a[i]+a[j];}else{mi=max(a[i]-a[j],mi,a[j]-a[i]);}}}}cout<<h;return 0;
}
void f(int n){}
数根
#include<bits/stdc++.h>
using namespace std;
void f(int n);
int n;
int main()
{cin>>n;int sum=0;while(true){if(n/10==0){cout<<n;return 0;}else{int t=n;while(t!=0){sum=sum+t%10;t=t/10;}n=sum;}}return 0;
}
void f(int n){}
和数不会
生理周期
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int a[100];
void f(int);
int main()
{int ax,b,c,d;cin>>ax>>b>>c>>d;for(int i=d+1;i<=d+21252;i++){if(i%23==ax&&i%28==b&&i%33==c){cout<<i-d<<endl;}}return 0;
}
void f(int n){}
矩形数量文件结构“图”不会
分解因数
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int,int);
int main()
{int m;cin>>n>>m;f(n,m);return 0;
}
void f(int n,int m){if(n==1){sum++;return;}for(int i=m;i<=n;i++){if(n%i==0){f(n/i,i);}}}