您的位置:首页 > 编程语言 > C语言/C++

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

2014-11-30 09:38 302 查看
课程主页在/article/1353164.html,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。

杨辉三角

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
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

3
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
;
    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菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: