2014秋C++第14周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 

杨辉三角

Description

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
上面的图形熟悉吗?这是大名鼎鼎的杨辉三角。
杨辉三角可不只是数学游戏,在实际应用中有大用。例如两个未知数x、y之和的n次方的系数问题,(x+y)^1=x+y,系数为1, 1,(x+y)^2=x^2+2xy+y^2,系数是1,2,1,立方、四次方,你可以继续下去,这不就是杨辉三角的各行吗?
所以,生成了杨辉三解,解决的就是多项式展开问题。而多项式,解决的实际问题更广了。

Input

一个正整数n(1<n<30)

Output

输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开。注意每一层最后一个数后面没有空格。

Sample Input

6

Sample Output

1 1

1 2 1 

1 3 3 1 

1 4 6 4 1 

1 5 10 10 5 1

HINT

用二维数组存储杨辉三角(实际只用左下部分)。于是可以采用下面的思路完成:

#include <iostream>

using namespace std;

int main()

{

int a[30][30],n;

cin>>n;

//使n行第1列和对角的元素均为1

//从第3行开始,按规律求和

//输出结果

return 0;

}

参考解答:

#include <iostream>
using namespace std;

int main()
{
    int a[30][30],n;
    cin>>n;
    int i,j;
    for(i=0; i<n; i++)
    {
        a[i][0]=1;
        a[i][i]=1;
    }
    for(i=0; i<n; i++)
    {
        for(j=1; j<i; j++)
            a[i][j]=a[i-1][j]+a[i-1][j-1];
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<i; j++)
            cout<<a[i][j]<<' ';
        cout<<a[i][i]<<endl;
    }
    return 0;
}

1012: 求矩阵对角线元素之和

Description

在 数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。矩阵是高等代数学中的常见工具,也常见于统计分析 等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,计机图形学、三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。介绍矩阵理论的线性代数课程是工程专业学生的必修科目。
用程序设计的方法解决矩阵问题,最简单的就是将矩阵用二维数组存储和处理。
下面,我们将矩阵对角线元素加起来。

Input

一个整数n,代表接下来的要输入n行n列的数据,作为矩阵中的元素。(1<n<15)
n行n列的整数值。

Output

主对角线(多左上到右下)和副对角线(由右上到左下)元素和,两数中间用空格隔开。

Sample Input

1 2 3 

1 1 1 

3 2 1

Sample Output

3 7

 

 

参考:

#include <iostream>
using namespace std;

int  main()
{
    int i=0,j=0,a[15][15],s1=0,s2=0,n;
    cin>>n;
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            cin>>a[i][j];
    for(i=0;i<n;i++){
         s1+=a[i][i];
         s2+=a[i][n-1-i];
    }
    cout<<s1<<" "<<s2<<endl;
    return 0;
}

1013: 国家排序

Description

世界格局动荡不安,10国紧急召开会议磋商对策。有些国家斤斤计较,参会代表的座位如何排定争个不停。现在给他们按字典序排列,赶紧商议正事。请编写程序,为这10国的代表排好顺序。

Input

10个国家的名字,一个国家一行

Output

排好序的国家名,一个国家一行

Sample Input

Ireland Poland Germany France Norway Korea Malaysia Thailand China Brazil

Sample Output

Brazil China France Germany Ireland Korea Malaysia Norway Poland Thailand

HINT

调试程序输入时,请用好DOS窗口左上角的“编辑”功能,以提高工作效率。

 

参考解答

#include <iostream>
using namespace std;
const int N=10;
int main( )
{
    int i,j;
    string t,str[N];
    for(i=0; i<N; i++)
        cin>>str[i];
    for (j=0; j<N-1; j++)
        for(i=0; i<=N-j-1; i++)
            if (str[i]>str[i+1])
            {
                t=str[i];
                str[i]=str[i+1];
                str[i+1]=t;
            }
    for(i=0; i<N; i++)
        cout<<str[i]<<endl;
    cout<<endl;
    return 0;
}

 

=================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
时间: 2024-10-30 13:41:55

2014秋C++第14周OJ题目参考的相关文章

2014秋C++第13周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  A: 数组逆序输出 Description输入10个整数存入一维数组,然后按逆序输出.Input输入包括一行. 10个以空格隔开的整数.Output逆序的10个整数,整数以空格隔开.Sample Input1 3 5 9 7 6 8 2 4 0Sample Output0 4 2 8 6 7

2014秋C++第12周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  2447: 求N组数的最大公约数 Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结果独占一行Sample Input39

2014秋C++第18周 OJ题目及参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  1. 百位数答应了 Description m是个三位的整数,家里出了点小麻烦.个位数和十位数一直对百位数凡事都先露脸心怀不满,想出个办法,联手向百位数发起挑点.他们两个先相加,再减去百位数,以相减结果得到正值为傲.大度的百位数答应了:不就是陪着这两个无聊的家伙解闷嘛.请你编程序,帮他们一比

2014秋C++第17周 OJ题目及参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  A. 3数求平均 Description 输入3个整数,输出它们的平均值,保留3位小数 Input 3个整数 Output 3数的平均值,要求输出3位小数 Sample Input 3 5 2 Sample Output 3.333 HINT #include <iostream>

2014秋C++第14周项目5参考-体会棋盘游戏

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目5-体会棋盘游戏中的数据存储]定义一个8行8列的二维数组a[8][8].(1)为二维数组中的数据赋50以内的随机数(程序模板中setdata()函数已经完成,利用产生随机数的系统函数实现),可能的取值如图所示:(2)设计函数out()按行输出二维数组中的数据:(3)设计函数outDia

2014秋C++第14周项目1参考-折腾二维数组

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目1-折腾二维数组]创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"

2014秋C++第14周项目4参考-电子词典

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目4-电子词典]做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用'\t'隔开.编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思.运行程序后,支持用户连续地查词典

2014秋C++第14周项目3参考-多科成绩单

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目3-多科成绩单]某班不超过100名同学.用二维数组score[][4]保存同学们的高数.英语.C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号).在此基础上,完成下面的操作:(1)输入学生的实际人数num,在输入各科的成绩时,输入3科成绩后可以自动求出总分,并

2014秋C++第14周项目2参考-带姓名的成绩单

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目2-带姓名的成绩单]设score[8]数组中存储8名同学的C++成绩,增加一个数组string name[8]并赋初值,表示同学们的姓名.这两个数组中,每名同学的姓名与成绩的下标要始终保持一致(例如name[i]和score[i]表示同一位同学(下标为i)的姓名和C++成绩,否则会张冠