2017年瑶海区小学区赛

1.电子表格【avg】

描述

考试结束了,老师想统计一下班级的总成绩。可是电子表格软件出了bug。精通编程的小z想通过写一个计算程序的办法解决这个问题。他会怎么做呢。

输入

第一行一个整数n,表示班级人数。

接下来n行,每行一个整数ai(0<ai<100)表示每个人的成绩

输出

输出班级的总成绩

输入样例 1复制

3
100
98
96

输出样例1复制

294
#include<bits/stdc++.h>
using namespace std;//区赛第一题,没什么好讲的
int main(){
	int a[100],cnt=0,n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];	
	}
	for(int i=0;i<n;i++){
		cnt+=a[i];
	}
	cout<<cnt;
	return 0;
	}

2.交错串【cross】

描述

小z遇到一个编程难题,给出两个相同长度的字符串s1和s2,比如“abcd”和“efgh”,求两个字符串交错后组成的新字符串。交错是指将s1中第i个字符插入到s2第i个字符后,比如上面两个字符串交错后得到的新字符串是“eafbgchd”。

你能设计程序帮小z解决这个问题吗?

输入

第一行是字符串的长度len

接下来两行,第一行是字符串s1,第二行是字符串s2

数据保证s1和s2等长。

输出

输出一行,s1和s2交错后的字符串

输入样例 1复制

4
efgh
ijkl

输出样例1复制

iejfkglh

提示

对于100%的数据

0<len<1000

//这题就是交替输出
#include<bits/stdc++.h>
using namespace std;
int main(){
	int i,len;
	string s1,s2; 
	cin>>len;
	cin>>s1;
	cin>>s2;
	for(i=0;i<len;i++){//注意i<len,在我还不懂字符串的时候写了这一题,结果写了个i<=len,直接0分
		cout<<s2[i]<<s1[i]; 
	}

	return 0;
	}

3.小z的作业【homework】

描述

信息学老师给小z布置了新作业,是一道计算题

x=number1pow1​+number2pow2​+...+numberNpowN​​

其中number1…numberN是整数,pow1…powN是10以内的整数。但老师收到小z的电子版作业时,方程式的格式丢了,也就是原本方程可能是X=21^3+10^2+4^5,老师收到的却是X=213+102+45。请你帮老师写一个程序,输入式子格式丢失的每一项,计算等式原本的值。(ax表示x个a相乘的结果)

输入

第一行是一个整数N,表示有N项

接下来N行,每行一个整数,表示小z作业中每一项数字。

输出

输出一行:等式原本的结果。

输入样例 1复制

3
213
102
45

输出样例1复制

10385

提示

对于100%的数据,1<=n<=10。结果保证在64位整数范围内(C++long long)

#include<bits/stdc++.h> //这题只是看着难,实际上双重for都能过
using namespace std;
int main(){ 
    long long he=0,n,i,shu;
    cin>>n;
    for(i=1;i<=n;i++){ 
        cin>>shu;
        int a=shu/10; 
        int b=shu%10; 
        long long ji=1; 
        for(int j=1;j<=b;j++){
            ji*=a; 
        }
        he+=ji; 
    } 
    cout<<he; 
    return 0; 
}

4.小z的作业【homework】

描述

健忘的小z忘了自己的电脑密码,好在他设置了密码提示问题。回答出提示问题即可找回密码。

提示问题为:

1.找出一个大于等于L,小于等于D的最小整数N,N的各个位加起来结果是X

2.找出一个大于等于L,小于等于D的最大整数M,M的各个位加起来结果是X

问题保证N和M一定存在。

可怜的小z并不能想出这个问题,你能帮他吗?

输入

第一行是一整数L,

第二行是一个整数D,

第三行是一个整数X。

输出

第一行输出整数N,第二行输出整数M。

输入样例 1复制

100
500
12

输出样例1复制

129
480

提示

对于100%的数据:

X<=36

M,N<=10000

#include<bits/stdc++.h>
using namespace std;
int dim(int num){//计算各个数位之和
    int sum=0;
    while(num>0){
        sum+=num%10;
        num/=10;
    }
    return sum;
}

int main(){
    int L,D,X;//因为闲的所以用大写
    cin>>L>>D>>X;
    int N=L;
    while(dim(N)!=X){
        N++;
    }
    int M=D;
    while(dim(M)!=X) {
        M--;
    }
    cout<<N<<endl;
    cout<<M<<endl;

    return 0;
}

是二分,又好像不是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值