1,杨辉三角形
题目描述:
输入n值,使用递归函数,求杨辉三角形中各个位置上的值。
输入:
一个大于等于2的整型数n
输出:
题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应输入n的杨辉三角形。
样例输入:
6
样例输出:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
总结:递归掌握的不好
#include<iostream>
#include<vector>
using namespace std;
vector<int> print_triangle(int n){
vector<int> re_vector;
//递归退出条件
if(n == 1){
re_vector.push_back(1);
re_vector.push_back(1);
}else{
//递归调用
vector<int> pre_level = print_triangle(n-1);
for(int i=0;i < pre_level.size();i++){
cout<<pre_level[i];
if(i != pre_level.size() - 1){
cout<<" ";
}else{
cout<<endl;
}
}
re_vector.push_back(1);
int p1 = 0;
int p2 = 1;
//n - - > 1表明其运行 n-2 次,中间有 n-2个元素需进行计算
while(n-->1){
re_vector.push_back(pre_level[p1]+pre_level[p2]);
p1++;
p2++;
}
re_vector.push_back(1);
}
return re_vector;
}
int main(){
int n;
while(cin>>n){
print_triangle(n);
}
return 0;
}
2,调整方阵
题目描述:
输入一个N(N<=10)阶方阵,按照如下方式调整方阵:
1.将第一列中最大数所在的行与第一行对调。
2.将第二列中从第二行到第N行最大数所在的行与第二行对调。
依此类推...
N-1.将第N-1列中从第N-1行到第N行最大数所在的行与第N-1行对调。
N.输出这个方阵
输入:
包含多组测试数据,每组测试数据第一行为一个整数N,表示方阵的阶数.
接下来输入这个N阶方阵.
输出:
调整后的方阵
样例输入:
4
3 6 8 7
6 7 5 3
8 6 5 3
9 8 7 2
样例输出:
9 8 7 2
6 7 5 3
3 6 8 7
8 6 5 3
总结:还是要细心
#include<iostream>
using namespace std;
void adjust_mutex(int num[10][10],int c,int n){
int swap,i;
int max = c;
for(i=c;i<n;i++){
if(num[i][c] > num[max][c]){
max = i;
}
}
if(max != c){
for(i=0;i<n;i++){
swap = num[c][i];
num[c][i] = num[max][i];
num[max][i] =swap;
}
}
}
int main(){
int n,i,j;
int mutex[10][10];
while(cin>>n){
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cin>>mutex[i][j];
}
}
for(i=0;i<n;i++){
adjust_mutex(mutex,i,n);
}
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
cout<<mutex[i][j]<<" ";
}
cout<<mutex[i][n-1]<<endl;
}
}
return 0;
}
3,合并符串
题目描述:
给定两个字符串S1和S2,合并成一个新的字符串S。
合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;
将S1的第二个字符作为S的第三个字符,将S2的倒数第二个字符作为S的第四个字符,以此类推。
输入:
包含多组测试数据,每组测试数据包含两行,代表长度相等的两个字符串S1和S2(仅由小写字母组成,长度不超过100)。
输出:
合并后的新字符串S
样例输入:
abc
def
样例输出:
afbecd
总结:1,字符串长度不确定的时候最好还是要使用char【】。 2,好像考虑多了,题目的两个字符串等长。
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1,str2;
char m_str[202];
int len1,len2;
int i,j,h;
while(cin>>str1 && cin>>str2){
len1 = str1.length();
len2 = str2.length();
h=0;
for(i=0,j=len2-1;i<len1 && j>=0;i++,j--){
m_str[h++] = str1[i];
m_str[h++] = str2[j];
}
if(i<len1){
for(i;i<len1;i++){
m_str[h++] = str1[i];
}
}
if(j>=0){
for(j;j>=0;j--){
m_str[h++] = str2[j];
}
}
for(i=0;i<h-1;i++){
cout<<m_str[i];
}
cout<<m_str[h-1]<<endl;
}
return 0;
}
4,求两个多项式的和
题目描述:
输入两个多项式,计算它们的和。
每个多项式有若干对整数表示,每组整数中,第一个整数表示系数(非0),第二个整数表示该项的次数。
如由3 3 5 -2 1 4 0表示3x^5 - 2 * x + 4其中第一个3表示该多项式由三个整数对表示。
输入:
输入为两行,分别表示两个多项式。表示每项的整数对按照次数大小降序给出。(次数绝对值小于1000,系数绝对值小于10000)
输出:
按照降次顺序输出表示和多项式的整数对(系数为0的整数对不用输出,整数对由空格分隔,最后一个整数对后不添加空格)
样例输入:
3 3 5 -2 1 4 0
4 2 3 -1 2 1 1 3 0
样例输出:
3 5 2 3 -1 2 -1 1 7 0
总结:感觉写的不好,不精彩!!
#include<iostream>
using namespace std;
int main(){
int i,j,n,m;
int x,c;
while(cin>>n){
int po1[2010]={0};
int po2[2010]={0};
int sum[2010]={0};
for(i=0;i<n;i++){
cin>>x>>c;
po1[c+1000] = x;
}
cin>>m;
for(i=0;i<m;i++){
cin>>x>>c;
po2[c+1000] = x;
}
for(i=0;i<2010;i++){
sum[i] = po1[i] + po2[i];
}
for(j=0;j<2010;j++){
if(sum[j] != 0){
break;
}
}
for(i=2009;i>j;i--){
if(sum[i] != 0){
cout<<sum[i]<<" "<<i-1000<<" ";
}
}
cout<<sum[j]<<" "<<i-1000<<endl;
}
return 0;
}
分享到:
相关推荐
考研计算机专业复试上机题 西北工业大学考研计算机专业复试上机题 西北工业大学
某科技大学_考研复试_上机题_答案.doc
东北大学_计算机考研_复试_java课件,东大本科学生上课用的课件。
西北工业大学计算机考研801历年网络真题+期末题汇总
南京大学计算机考研复试上机操作真题,收录的是历年上机的试题
2018合肥工业大学计算机复试详情,若有需要庆私信,谢谢
计算机考研复试上机集锦 含有:同济大学 浙江大学 上海交通
东北大学_计算机考研_复试__软件工程课件_1.rar,东大计算机专业本科上课用的课件。
东北大学_计算机考研_复试_数据库课件_1.rar,东大计算机专业本科上课用的课件。
东北大学_计算机考研_复试__软件工程课件_2.rar,东大计算机专业本科上课用的课件。
2010年西北工业大学机试考研复试试题(回忆版)
上海交大考研复试上机试题,以及历年答案,打算保研或考研到浙大计算机的同学必读
西北大学复试上机题及程序分析,复试相关资料
西北工业大学(以下简称西工大)坐落于陕西西安,是我国唯一一所以同时发展航空、航天、航海(三航)人才培养和科学研究为特色的多科性、研究型、开放式大学,隶属于工业和信息化部。新中国成立以来,西工大一直是...
武汉理工大学计算机考研复试题 武汉理工考研计算机复试题 计算机考研复试 理工计算机考研复试 武汉理工大学考研复试
考研复试 计算机题目和代码 上机
汇集若干国内著名高校的考研复试的上机试题,考研的朋友可以参考一下,对复试有帮助。
西北工业大学2007计算机学院研究生复试机试心得