第1题
数字放大
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。
【输入】
包含三行: 第一行为N,表示整数序列的长度(N≤100);
第二行为N个整数(不超过整型范围),整数之间以一个空格分开;
第三行包含一个整数(不超过整型范围),为指定的整数x。
【输出】
N个整数,为原序列放大之后的序列,整数之间以一个空格分开。
【输入样例】
3
1 5 7
2
【输出样例】
2 10 14
【提示】
注意答案的数据范围
样例程序:
#include<bits/stdc++.h> using namespace std; long long int n,a[101],x; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>x; for(int i=1;i<=n;i++) cout<<a[i]*x<<" "; return 0; }
第二题
统一文件名
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
小A在命名文件的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将目录下的文件统一规范的格式,即文件名的第一个字符如果是字母要大写,其他字母小写。如将TEST、tESt整理成Test。
【输入】
第一行一个数字n,表示有n个文件名要统一,n不超过100。 接下来n行,每行一个单词,长度不超过20,表示文件的名字。文件名由字母、数字和-组成。
【输出】
n行,每行一个单词,对应统一后的文件名。
【输入样例】
4
Test
data
2-TEST
problem-6
【输出样例】
Test
Data
2-test
Problem-6
样例程序:
#include<bits/stdc++.h> using namespace std; int main() { int n; string s; cin>>n; for(int i=1;i<=n;i++) { cin>>s; int ss=s.size(); for(int j=0;j<ss;j++) if(s[j]>='A'&&s[j]<='Z') s[j]+=32; if(s[0]>='a'&&s[0]<='z') s[0]-=32; cout<<s<<endl; } return 0; }
第三题:
内部元素之和
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个整数矩阵,计算位于矩阵内部的元素之和。
所谓矩阵内部的元素,不在第一行和最后一行的元素以及第一列和最后一列的元素。
【输入】
第一行分别为矩阵的行数m和列数n(0 < m,n < 100),两者之间以一个空格分开。
接下来输入的m行数据中,每行包含n个整数(每个数大于等于0,小于1000),整数之间以一个空格分开。
【输出】
输出对应矩阵的内部元素和。
【输入样例】
3 3
3 4 1
3 7 1
2 0 1
【输出样例】
7
样例程序:
#include<iostream> using namespace std; int main() { int m,n,a[101][101],sum=0; cin>>m>>n; for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { cin>>a[i][j]; if(i!=1&&j!=1&&i!=m&&j!=n) { sum+=a[i][j]; } } } cout<<sum; return 0; }
第四题:
整数排序
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定10个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按输入顺序逆序排序。
【输入】
输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
【输出】
按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。
【输入样例】
4 7 3 13 11 12 0 47 34 98
【输出样例】
47 13 11 7 3 98 34 0 12 4
样例程序:
#include<bits/stdc++.h> using namespace std; int main() { int d,a[20],b[20],m=0,n=0,temp,i,j,q=0; while(q++!=10) { cin>>d; if(d%2==1) a[m++]=d; else b[n++]=d; } for(i=0;i<m;i++) for(j=i+1;j<m;j++) if(a[i]<a[j]) swap(a[i],a[j]); for(i=0;i<m;i++) cout<<a[i]<<" "; for(i=n-1;i>=0;i--) cout<<b[i]<<" "; return 0; }
第五题:
计算好数
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为好数。
例如:
(13)10 = (1101)2,其中1的个数为3,0的个数为1,则此数是好数;
(10)10 = (1010)2,其中1的个数为2,0的个数也为2,则此数不是好数;
(24)10 = (11000)2,其中1的个数为2,0的个数为3,则此数不是好数;
对于给定的N,写程序求出1~N之中(包括1与N)中的好数个数。
【输入】
一个整数,题目中的N(1≤N≤1000)
【输出】
一个整数,表示1~N之中(包括1与N)中的好数个数
【输入样例】
10
【输出样例】
5
样例程序:
#include<bits/stdc++.h> int a[10001],k,d,s,sm,n,i; int main() { cin>>n; for(i=1;i<=n;i++) { d=0; s=0; k=i; while(k) { if(k%2==1) d++; else s++; k/=2; } if(d>s) sm++; } cout<<sm; return 0; }