#include<stdio.h>
#include<stdbool.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int a,b,ans;
scanf("%d+%d=%d",&a,&b,&ans);
int k=1;
int cnt1=0;
bool flag=false;
for(int i=0;i<=9;i++)
{
if(a*k+b==ans)
{
printf("%d\n",cnt1);
flag=true;
break;
}
k=k*10;
cnt1++;
}
if(!flag)
{
k=1;
cnt1=0;
for(int i=0;i<=9;i++)
{
if(b*k+a==ans)
{
printf("-%d\n",cnt1);
flag=true;
break;
}
k=k*10;
cnt1++;
}
}
}
return 0;
}
有点担心做不出来,幸好还算顺利,做出来了
有点奇怪,感觉思路很简单,但是WA,代码如下
#include<stdio.h>
#define N 1010
int a[N],b[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
//想起来以前自己被循环输入整到崩溃哈哈
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) b[i]=a[i];
int cnt=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i]*a[i]==b[j])
{
cnt++;
//printf("%d*%d==%d\n",a[i],a[i],b[j]);
}
}
}
for(int i=1;i<=n;i++)
{
if(a[i]==1||a[i]==0) cnt++;
}
printf("%d\n",cnt);
}
return 0;
}
发现是因为数据范围原因,两个数字相乘的结果超出了int的数据范围,但是为什么不特判一下0和1呢,不是很理解,下面这个代码还是过不了,不知道原因
#include<stdio.h>
#define N 1010
long long a[N],b[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
//想起来以前自己被循环输入整到崩溃哈哈
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=1;i<=n;i++) b[i]=a[i];
int cnt=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i]*a[i]==b[j]&&a[i]!=0&&a[i]!=0)
{
cnt++;
//printf("%d*%d==%d\n",a[i],a[i],b[j]);
}
}
}
for(int i=1;i<=n;i++)
{
if(a[i]==1||a[i]==0) cnt++;
}
printf("%d\n",cnt);
}
return 0;
}
下面这个代码可以过
#include<stdio.h>
#define N 1010
long long a[N],b[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
//想起来以前自己被循环输入整到崩溃哈哈
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=1;i<=n;i++) b[i]=a[i];
int cnt=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i]*a[i]==b[j])
{
cnt++;
//printf("%d*%d==%d\n",a[i],a[i],b[j]);
}
}
}
// for(int i=1;i<=n;i++)
// {
// if(a[i]==1||a[i]==0) cnt++;
// }
printf("%d\n",cnt);
}
return 0;
}
#include<stdio.h>
#define N 1010
int a[N];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
char s[2];
scanf("%s",s);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[i]>a[j])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
if(s[0]=='A')
{
for(int i=1;i<=n-1;i++) printf("%d ",a[i]);
printf("%d\n",a[n]);
}
else
{
for(int i=n;i>=2;i--) printf("%d ",a[i]);
printf("%d\n",a[1]);
}
}
return 0;
}
冒泡排序+输出的格式,丝滑流畅~
#include<stdio.h>
#define mod 2013//也许是2013年出的题目
#define N 110
int a[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int j=1;j<=n-1;j++)
{
for(int i=1;i<=n-j;i++)
{
a[i]+=a[i+1];
a[i]%=mod;
}
}
printf("%d\n",a[1]);
}
return 0;
}
#include<stdio.h>
#include<string.h>
int min(int a,int b,int c)
{
int ans=a;
if(b<ans) ans=b;
if(c<ans) ans=c;
return ans;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char s[1010];
scanf("%s",s);
int cnt_x=0,cnt_t=0,cnt_u=0;
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='X') cnt_x++;
if(s[i]=='T') cnt_t++;
if(s[i]=='U') cnt_u++;
}
int ans=min(cnt_x,cnt_t,cnt_u);
printf("%d\n",ans);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
int cnt[30];
int main()
{
char s[1010];
while(~scanf("%s",s))
{
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
s[i]-='a'-'A';//全部转变为大写字母
}
}
for(int i=0;i<len;i++)
{
cnt[s[i]-'A']++;
}
bool flag=true;
for(int i=0;i<26;i++)
{
if(cnt[i]==0)
{
puts("No");
flag=false;
break;
}
}
if(flag) puts("Yes");
memset(cnt,0,sizeof cnt);
}
return 0;
}
每次交题好紧张,咋回事……