最后一题是左子右兄弟法,可是没时间写了太菜了哎,都怪第4题中间有个地方卡了好久,其实思路很简单gg……
第一题,简单的商场打折转换,不知道有没有坑……
//16题
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;
cin>>n;
int money=3200;
if(n<=0){
cout<<money<<endl;
}else if(n<=10){
money-=n*10;
cout<<money<<endl;
}else if(n<=50){
money-=100;
money-=(n-10)*5;
cout<<money<<endl;
}else{
cout<<"2800"<<endl;
}
return 0;
}
第二题,输入N,将0~N这么多数都转换成二进制数,计算之中二进制数中0的个数
//17题
#include <iostream>
using namespace std;
int main(){
int n,i,j=0;
int a;
cin>>n;
i=n;
int num=0;//0的个数
for(int k=1;k<=n;k++){
i=k;
while(i) {
a = i%2;
if(a==0){
num++;
}
i/=2;
j++;
}
}
cout<<num<<endl;
return 0;
}
第三题,能被2整除和能被5整除的数分别输出,用vector就很方便,题目描述应该是有点问题的,多了一个“只能”,按样例来就ok吧……
//18题
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
cin>>n;
int b;
vector<int> a_1,a_2,a_3;
for(int i=0;i<n;i++){
cin>>b;
if(b%2==0&&b%5!=0){
a_1.push_back(b);
}
if(b%2==0){
a_2.push_back(b);
}
if(b%5==0){
a_3.push_back(b);
}
}
for(int i=0;i<a_1.size()-1;i++){
cout<<a_1[i]<<" ";
}
cout<<a_1[a_1.size()-1]<<endl;
for(int i=0;i<a_2.size()-1;i++){
cout<<a_2[i]<<" ";
}
cout<<a_2[a_2.size()-1]<<endl;
for(int i=0;i<a_3.size()-1;i++){
cout<<a_3[i]<<" ";
}
cout<<a_3[a_3.size()-1]<<endl;
return 0;
}
第四题,中间string有个bug真是搞死了我了,浪费了不少时间,不然最后一题那个左子右兄弟我应该可以做出来的,哎,平时练得时候根本没注意过时间,都怪自己……
//19题
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
vector<string> name;
string na;
double fenshu;
vector<double> state;
for(int i=0;i<n;i++){
cin>>na;
name.push_back(na);
int b[k];
for(int j=0;j<k;j++){
cin>>fenshu;
b[j]=fenshu;
}
sort(b,b+k);
state.push_back(0);
for(int l=1;l<k-1;l++){
state[i]+=b[l];
}
state[i]/=(k-2);
// cout<<state[i]<<endl;
}
vector<double> ss;
for(int i=0;i<state.size();i++){
ss.push_back(state[i]);
}
sort(ss.begin(),ss.end());
int space1;
int space2;
for(int i=0;i<state.size();i++){
if(state[i]==(ss[n-1])){
space1=i;
}
if(state[i]==(ss[n-2])){
space2=i;
}
}
cout<<name[space1]<<" "<<name[space2]<<endl;
return 0;
}
测试样例:
5 4
zhang 85 85 90 80
wang 85 90 80 90
zhao 90 92 85 90
li 75 80 85 80
yang 81 75 80 85