比赛链接:https://cn.vjudge.net/contest/261258
密码:nyist
厚的肉排乘2加上薄的肉排
#include
int main()
{
int t;
scanf("%d",&t);
while(t--) //t组输入
{
int x,y;
int ans=0;
scanf("%d%d",&x,&y);
if(x>=y)
ans=2*x+y;
if(x
思路:把化学式中的每个元素的相对原子质量相加
#include
#include
int main()
{
int t;
scanf("%d",&t);
char a[20]={0};
while(t--)
{
scanf("%s",a);
int len=strlen(a); //字符串长度
int ans=0;
for(int i=0;i
素数筛法把素数标记,然后暴力判断。如果i 和(x-i)都是素数ans加一。
#include
const int N=10010;
int s[N];
void init() //素数筛法
{
int i,j;
s[0]=s[1]=1;
for(i=2;i
对于要计算的数,直接对100取模,然后相加即可
#include
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int x,y,a,b,c;
scanf("%d%d",&x,&y);
a=x%100;
b=y%100;
c=a+b;
printf("%d\n",c%100);
}
return 0;
}
两种方法:
1.暴力(不建议)
2数学方法 :
已知:x+y=n xy=m (x - y )^2 = n^2 - 4*m 联立x+y=n 求得x y
代码1:
#include
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
if(n==0&&m==0)
return 0;
int flag=0;
for(int i=-10000; i<=10000; i++)
{
if(i*(n-i)==m)
{
printf("Yes\n");
flag=1;
break;
}
}
if(flag==0)
printf("No\n");
}
return 0;
}
代码2:
#include
#include
int main()
{
int n,m,x1,x2,y1,y2,tmp;
while(~scanf("%d%d",&n,&m))
{
if(n==0&&m==0)
break;
tmp=sqrt(1.0*n*n-4*m);
if(tmp<0)
printf("No\n");
else
{
x1=(n+tmp)/2;
y1=n-x1;
x2=(n-tmp)/2;
y2=n-x2;
if(x1*y1==m||x2*y2==m)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}
运用向量知识,利用两条边来计算夹角
#include
#include
#define PI 3.1415926535;
int main()
{
int t;
while(~scanf("%d",&t))
{
while(t--)
{
double x1,y1,x2,y2,a,b,c;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
a=x1*x2+y1*y2;
b=sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2);
c=acos(a/b)/PI; //反余弦函数
c*=180;
printf("%.2lf\n",c);
}
}
return 0;
}
字符串的输出
#include
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char a[11];
scanf("%s",a);
printf("6%s\n",a+6);
}
return 0;
}
#include
#include
char a[65];
int main()
{
int n,i,l;
scanf("%d",&n);
getchar();
while(n--)
{
int flag=0;
gets(a);
l=strlen(a);
if(a[0]=='_'||a[0]>='a'&&a[0]<='z'||a[0]>='A'&&a[0]<='Z')
{
for(i=1;i='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'||a[i]>='0'&&a[i]<='9')
continue;
else
{
flag=1;
break;
}
}
}
else
{
flag=1;
}
if(flag)
printf("no\n");
else
printf("yes\n");
}
return 0;
}
找规律+模拟
#include
#include
char e[85][85];
char a,b;
int main()
{
int n,T=0;
while(~scanf("%d %c %c",&n,&a,&b))
{
if(T)puts("");
if(n==1)
{
printf("%c\n",a);
continue;
}
char x;
int tmp=1;
if(((n+1)/2)%2==0)
{
char c=a;
a=b;
b=c;
}
while(tmp<=(n+1)/2)
{
int m=n-tmp+1;
if (tmp%2==1)x=a;
else x=b;
for(int i=tmp; i<=m; i++)
{
e[tmp][i]=x;
e[m][i]=x;
e[i][tmp]=x;
e[i][m]=x;
}
tmp++;
}
e[1][1]=e[n][n]=e[1][n]=e[n][1]=' ';
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
printf("%c",e[i][j]);
puts("");
}
T++;
}
return 0;
}