北科程序设计第十一周上机

目录

1. 小球第n次反弹的高度

 2. 0~99之间的一串随机数

 3. 公共子序列

4. 按列输出二维数组

 5. 字符串匹配

6. 荷兰国旗问题

 7. 桶排序

8. 在一维数组中查找最大值,要求用递归实现。

9. 蛇形填数

 10. 折半查找


 

1. 小球第n次反弹的高度

题目正文:一个球从100m高度落下,每次反弹是之前高度的一半,求第n次反弹多高?(即,第一次50m,第二次25m......)

输入输出说明:

输入:1

输出:50

初始代码:

#include "iostream"

using namespace std;

int main()

{    

    //write your own codes

    return 0;

}

示例代码:

#include "iostream"
#include <cmath>
using namespace std;
int main()
{    
     int n;
	 cin>>n;
	 float result=100.0/(pow(2,n));
	 cout<<result<<endl;
     return 0;
}

 2. 0~99之间的一串随机数

【题目描述】

在计算机中,通常采用线性同余法产生随机数,即随机数序列a0, a1, …, an满足:

a0 = seed,

an = (b*an-1 + c) % m ,n = 1, 2, ……

其中,b≥0,c≥0,m>0,seed≤m。

seed称为随机种子,当b、c和m的值确定后,给定一个随机种子,由式产生的随机数序列也就确定了。

输入seed,b,c,m 输出随机序列的前5项 (a0到a4)

【输入格式】

一行4个整数分别表示 seed ,b,c,m

【输出格式】

一行4个整数表示随机序列的前4项(!! 注意: 中间有两个空格分隔)

【样例输入】

10 2 4 5

【样例输出】

a0 10

a1 4

a2 2

a3 3

a4 0

示例代码:

#include <iostream>
using namespace std;
int main()
{    
     int seed,b,c,m,a[5];
     cin>>seed>>b>>c>>m;
     a[0]=seed;
     cout<<"a0"<<"  "<<seed<<endl;
     for (int i=1;i<=4;i++)
    {
	    a[i]=(b*a[i-1]+c)%m;
	    cout<<"a"<<i<<"  "<<a[i]<<endl;
    }
    return 0;

}

 3. 公共子序列

【题目描述】

对主串s按序号递增的顺序选出一个子串t,称t是s的子序列。

例如,对于主串s="abcbda",子串"bcd"是s的一个子序列。

给定两个主串s1和s2,当子串t既是s1的子序列又是s2的子序列时,称t是s1和s2的公共子序列。

例如,主串s1="abcbda",主串s2="abcab",子串"acb"是主串s1和s2的公共子序列。

要求编写程序,判断给定的子串是否为两个主串的公共子序列。

【输入格式】

一行三个字符串(中间用一个空格分隔),分别表示两个主串 s1,s2 和 t

【输出格式】

按要求输出 "yes" 或 "no" (不带引号)

【样例输入1】

abcdef abcffff abc

【样例输出1】

yes

【样例输入2】

abcdef ffff abc

【样例输出2】

no

示例代码:

#inclu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值