oj 1255
cpp
#include<stdio.h>
#include<stdbool.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int a,b;
scanf("%d%d",&a,&b);
a=a*a;
b=b*b;
bool flag=false;
for(int i=1;i<=15000;i++)
{
if(i*i==a+b||a==i*i+b||b==i*i+a)
{
printf("%d\n",i);
flag=true;
break;
}
}
if(!flag) puts("None");
}
return 0;
}
1075
cpp
#include<stdio.h>
int gcd(int a,int b)
{
return b>0?gcd(b,a%b):a;
}
int ans(int a,int b)
{
int res=a*b/gcd(a,b);
return res;
}
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
if(a==0&&b==0) break;
printf("%d\n",ans(a,b));
}
return 0;
}
1088
很奇怪,WA了一次,代码如下
cpp
#include<stdio.h>
#define N 10007
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==-1) break;
int ans=n;
for(int i=n-1;i>=1;i--)
{
ans*=i;
ans%=N;
}
printf("%d\n",ans);
}
return 0;
}
改成这样就可以了,但是我没懂其中的逻辑关系,看了一下也没有超过int 的数据范围,是一边计算一边取模的
cpp
#include<stdio.h>
#define N 10007
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==-1) break;
int ans=1;
for(int i=1;i<=n;i++)
{
ans*=i;
ans%=N;
}
printf("%d\n",ans);
}
return 0;
}
所以尽可能从小的开始算么,但是感觉是一样的,不懂
1078
cpp
#include<stdio.h>
int main()
{
char s[2];
int cnt=0;
while(~scanf("%s",s))
{
if(s[0]=='#') break;
printf("case %d:\n",++cnt);
int num=s[0]-'A';
int temp=num;
for(int j=0;j<=num;j++)
{
for(int k=0;k<j;k++) printf(" ");
for(int i=0;i<=temp;i++)
{
printf("%c",i+'A');
}
for(int i=temp-1;i>=0;i--)
{
printf("%c",i+'A');
}
printf("\n");
temp-=1;
//printf("%d\n",temp);
}
}
return 0;
}
非常激动,因为之前确实做不出来,但是今天,虽然还是本能的害怕,但是确实写出来了哈哈
1137
cpp
#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char s[2];
scanf("%s",s);
int num=s[0]-'A';
for(int i=0;i<=num;i++)
{
for(int j=0;j<=num;j++) printf(" ");
printf("%c\n",i+'A');
for(int j=0;j<num-i;j++) printf(" ");
for(int j=0;j<2*i+3;j++) printf("%c",i+'A');
printf("\n");
}
}
return 0;
}
激动啊,以前这题也写不出来的