A
思路:主要是注意格式问题,每两组输出间要有空行,所以最后不必多出空行;
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,a[1000];
long long sum=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
cout<<sum<<endl;
if(t>=1)
cout<<endl;
}
return 0;
}
B
水题
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k,a[1001],count=0;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
if(a[i]>a[k-1])
count++;
}
cout<<count<<endl;
}
return 0;
}
C
又是矩阵相乘,以前代码直接复制就ac了
#include<cstdio> //原题?
int main()
{
int n, a[100][100], b[100][100], c[100][100] = { 0 };
scanf("%d", &n);
int i, j, t;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &b[i][j]);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
for (t = 0; t < n; t++)
{
c[i][j] += a[i][t] * b[t][j];
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n - 1; j++)
printf("%d ", c[i][j]);
printf("%d
", c[i][j]);
}
return 0;
}
D
思路:因为输入包含有空格,所以要用getchar依次输入
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
int main()
{
string s="`1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./";
char c;
while((c=getchar())!=EOF)
{
if(c==' '||c=='
')
cout<<c;
else
{
for(int i=1;i<s.size();i++)
{
if(c==s[i])
cout<<s[i-1];
}
}
}
return 0;
}
E
进制转换,举个例子,10转换为2进制,10%2==0,0为最后一位,然后将10/2=5再求5除以2的余数为倒数第二位,继续直到为0
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
int n,r;
while(~scanf("%d%d",&n,&r))
{
int a[100],t=0,i;
if(n==0)
{
cout<<n;
continue;
}
else if(n<0)
{
cout<<"-";
n=-n;
}
while(n)
{
a[t++]=n%r;
n/=r;
}
for(i=t-1;i>=0;i--)
{
if(a[i]>9)
printf("%c",'A'-10+a[i]);
else
printf("%d",a[i]);
}
cout<<endl;
}
return 0;
}
F
水题,
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
long a,b,m,n,i,j;
cin>>a>>b;
m=0;n=0;
for(i=1;i<a;i++)
if(a%i==0)
m+=i;
for(j=1;j<b;j++)
if(b%j==0)
n+=j;
if(m==b && n==a)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}