暑期第二场-0

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\n", 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=='\n')
			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;
 } 

猜你喜欢

转载自blog.csdn.net/qq_41785863/article/details/81081667