A。
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d\n",a+b);
}
}
B.你們過吧。。這個我出這玩的。。
#include <iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
int vis[200];//標記是否被訪問過
char s[5];
int cnt;//出現過的顏色和數字數
int card[110];
int map[11000];
int sum; //不同的牌數
int ok[110];
int main()
{
int n;
scanf("%d",&n);
int ans = 100;
memset(vis,0,sizeof vis);
memset(map,0,sizeof map);
memset(ok,0,sizeof ok);
cnt = 0;
sum = 0;
for(int i = 0; i < n; i++)
{
scanf("%s",s);
if(!vis[s[0]])
{
vis[s[0]] = ++cnt; //編號1 - 10
}
if(!vis[s[1]])
{
vis[s[1]] = ++cnt;
}
int temp = vis[s[0]]*100+vis[s[1]]; //前兩位表示顏色,後兩位表示數字
if(!map[temp]) //這張牌之前沒有出現過
{
map[temp] = 1;
card[++sum] = temp; //給牌編號
}
}
for(int i = 0; i < (1 << cnt); i++) //枚舉所有提示的可能
{
int tt = 0; //提示的次數
for(int j = 0; j <= cnt; j++)
{
if((1 << j)&i)
{
tt++;
for(int k = 1; k <= sum; k++)
{
//如果顏色或者數字被提示到了,那麼對應的ok值也就是提示值加上對應的標號
//如果是顏色要乘100,因爲我用前兩位表示顏色
if(card[k]/100 == j + 1) ok[k] += 100 * (j+ 1) ;
if(card[k]%100 == j + 1) ok[k] += j + 1 ;
}
}
}
//判斷有沒有兩個數的ok值相同的
sort(ok+1,ok+sum+1);
int flag = 0;
for(int i = 2; i <= sum; i++)
{
if(ok[i] == ok[i - 1])
{
flag = 1;
break;
}
}
memset(ok,0,sizeof ok);
if( !flag && tt < ans) ans = tt;
}
printf("%d\n",ans);
return 0;
}
C.可出題。。
#include<cstdio>
#include<cstring>
int main()
{
int i,j,k;
int n,m;
int num[1010];
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
}
int sum=0;
for(i=1;i<=n;i++)
{
if(num[i]==1)
{
if(m)
{
m--;
}
else
{
sum++;
}
}
else if(num[i]==2)
{
if(k)
{
k--;
}
else if(m)
{
m--;
}
else
{
sum++;
}
}
}
printf("%d\n",sum);
}
return 0;
}
D.
#include<stdio.h>
#include<string.h>
int main()
{
int sum=0;
char a[1003],c;
int i=0,j=0,k=0;
while(scanf("%s",a)!=-1)
{
if(strcmp(a,"add")==0)
{
scanf(" %c",&c);
if(c=='a')
{
sum=7;
i=1,j=1,k=1;
}
else if(c=='r'&&i==0)
sum+=4,i=1;
else if(c=='w'&&j==0)
sum+=2,j=1;
else if(c=='x'&&k==0)sum+=1,k=1;
}
if(strcmp(a,"del")==0)
{
scanf(" %c",&c);
if(c=='a')
sum=0,i=0,j=0,k=0;
else if(c=='r'&&i==1)
sum-=4,i=0;
else if(c=='w'&&j==1)
sum-=2,j=0;
else if(c=='x'&&k==1)sum-=1,k=0;
}
if(strcmp(a,"show")==0)
{
printf("%d\n",sum);
}
//memset(a,0,sizeof(a));
getchar();
}
}
E.海倫公式求三角形面積
#include<cstdio> #include<cmath> int main() { int T; scanf("%d",&T); while(T--) { double x,y,z; scanf("%lf%lf%lf",&x,&y,&z); double p = (x+y+z)/2; if((x+y)>z&&(x+z)>y&&(y+z)>x)///判斷三角形 printf("%.2f\n",sqrt(p*(p-x)*(p-y)*(p-z))); else printf("it's not a triangle!\n"); } }
F.
#include<cstdio>
#include<cmath>
int main()
{
int right,left;
while(scanf("%d%d",&right,&left)==2)
{
int Flag=0;
for(int i=right;i<=left;i++)
{
int tmp=i;
int x,y,z;
x=tmp%10,tmp/=10,y=tmp%10,tmp/=10,z=tmp%10;
if(x*x*x+y*y*y+z*z*z==i)
{
if(Flag)printf(" ");
printf("%d",i);
Flag=1;
}
}
if(!Flag)printf("no");
printf("\n");
}
}
G.
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define N 10
int res;
int n;
int m;
char maps[N][N];
int vis[N][N];
int judge(int x,int y)
{
for(int i=y-1; i>=0&&maps[x][i]=='.'; i--)
if(vis[x][i]==1)
return 0;
for(int i=x-1; i>=0&&maps[i][y]=='.'; i--)
{
if(vis[i][y]==1)
return 0;
}
for(int i=x-1,j=y-1; i>=0&&maps[i][j]=='.'&&j>=0; j--,i--)
{
if(vis[i][j]==1)
return 0;
}
for(int i=x-1,j=y+1; i>=0&&maps[i][j]=='.'&&j<n; j++,i--)
{
if(vis[i][j]==1)
return 0;
}
return 1;
}
void dfs(int pos,int tmp)
{
if(pos>=m)
return ;
if(res<tmp)
{
res=tmp;
}
pos++;
dfs(pos,tmp);
if(maps[pos/n][pos%n]=='.'&&judge(pos/n,pos%n))
{
vis[pos/n][pos%n]=1;
dfs(pos,tmp+1);
vis[pos/n][pos%n]=0;
}
return ;
}
int main()
{
while(scanf("%d",&n),n)
{
res=0;
memset(vis,0,sizeof(vis));
for(int i=0; i<n; i++)
{
scanf("%s",maps[i]);
}
m = n*n;
if(maps[0][0]=='.')
{
vis[0][0]=1;
dfs(0,1);
vis[0][0]=0;
}dfs(0,0);
printf("%d\n",res);
}
}
H.巴士博弈 找規律
#include<stdio.h>
int main()
{
int n,m;//!巴士博弈
while(~scanf("%d%d",&n,&m))
{
if(n%(m+1)==0) printf("LeyniV5!\n");
else printf("JiaozhuV5!\n");
}
}