SDUT-程序设计基础Ⅱ-实验三-递推
本文最后更新于 91 天前,其中的信息可能已经过时,如有错误请发送邮件到 lwenhao1010@163.com

1-1 马拦过河卒

任务描述:

棋盘上 A 点有一个过河卒,需要走到目标 B 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为 “马拦过河卒”。
棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 15 的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

输入格式:

一行四个数据,用空格分隔,分别表示 B 点的坐标和马的坐标。

输出格式:

一个数据,表示所有的路径条数。

输入样例:

6 6 3 3

输出样例:

6

相关限制:

代码长度限制16KB 时间限制1000ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int dx[9]= {0,-2,-1,1,2,2,1,-1,-2};
int dy[9]= {0,1,2,2,1,-1,-2,-2,-1};
int n,y,x,m,i,j;
long long int f[20][20]= {0};
int g[20][20]= {0};
scanf("%d%d%d%d",&n,&m,&x,&y);
g[x][y]=1;
for(i=1; i<=8; i++) { if((x+dx[i]>=0)&&(x+dx[i]<=n)&&(y+dy[i]>=0)&&(y+dy[i]<=m))
{
g[x+dx[i]][y+dy[i]]=1;
}
}
for(i=1; i<=n; i++)
{
if(g[i][0]!=1)
{
f[i][0]=1;
}
else
for( ; i<=n; i++)
{
f[i][0]=0;
}
}
for(j=1; j<=m; j++)
{
if(g[0][j]!=1)
{
f[0][j]=1;
}
else
for( ; j<=m; j++)
{
f[0][j]=0;
}
}
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
if(g[i][j]==1)
{
f[i][j]=0;
}
else
{
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
printf("%d\n",f[n][m]);
return 0;
}

1-2 养兔子

任务描述:

一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是 1 天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第 N 天以后,他将会得到多少对兔子。

输入格式:

输入为一个整数 n (1≤n≤90)。

输出格式:

对应输出第 n 天有几对兔子 (假设没有兔子死亡现象,而且是一夫一妻制)。

输入样例:

1

输出样例:

1

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int n,i;
long long int f[91];
f[1]=1;
f[2]=2;
while(~scanf("%d",&n))
{
if(n==0) break;
else
{
for(i=3;i<=n;i++)
{
f[i]=f[i-1]+f[i-2];
}
}
printf("%lld\n",f[n]);
}
return 0;
}

1-3 母牛的故事

任务描述:

有一对夫妇买了一头母牛,它从第 2 年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第 n 年的时候,共有多少头母牛?

输入格式:

输入为一个整数 n (0< n< 55)

输出格式:

输出在第 n 年的时候母牛的数量。

输入样例:

5

输出样例:

6

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int a[60];
int main()
{
int n,i;
a[1] = 1;
a[2] = 2;
a[3] = 3;
a[4] = 4;
for( i=5;i <= 60;i++)
a[i] = a[i-1] + a[i-3];
while(~scanf("%d",&n) && n != 0)
{
printf("%d\n",a[n]);
}
return 0;
}

1-4 黄金时代

任务描述:

在古希腊时期,有一天毕达哥拉斯走在街上,在经过铁匠铺前他听到铁匠打铁的声音非常好听,于是驻足倾听。他发现铁匠打铁节奏很有规律,这个声音的比例被毕达哥拉斯用数学的方式表达出来。

这个比例就叫做黄金分割比,它是指将整体一分为二,较大部分与整体部分的比值等于较小部分与较大部分的比值,其比值约为 0.6180339887。这个比例被公认为是最能引起美感的比例,因此被称为黄金分割。

现在小玉有一个正整数数列,这个数列的前一项和后一项的比值十分趋近于黄金分割比,即(a [i])/(a [i+1])~ 0.6180339887,(i>=1),可是她只知道数列的第一项是 5,现在她想通过已有条件推断出数列的任意项,请你帮助她编写一个程序计算。(请留意题目提示)

输入格式:

每次输入一个整数 n(1<=n<=20)

输出格式:

输出一个数,代表这个数列的第 n 项 a [n]。

输入样例:

在这里给出一组输入。例如:

1

输出样例:

在这里给出相应的输出。例如:

5

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
double N=0.6180339887;
int main()
{
int n;
long long int a[23];
scanf("%d",&n);
a[1]=5;
a[2]=8;
for(int i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%lld",a[n]);
return 0;
}

1-5 骨牌铺方格

任务描述:

在 2×n 的一个长方形方格中,用一个 1× 2 的骨牌铺满方格,输入 n , 输出铺放方案的总数。例如 n=3 时,为 2× 3 方格,骨牌的铺放方案有三种。

输入格式:

输入包含一个整数 n, 表示该测试实例的长方形方格的规格是 2×n (0< n<=50)。

输出格式:

输出铺放方案的总数。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

3

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
long long int a[60];
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (i == 1)
a[i] = 1;
else if (i == 2)
a[i] = 2;
else
a[i] = a[i - 1] + a[i - 2];
}
printf("%lld", a[n]);
}

1-6 爬楼梯

任务描述:

小明是个非常无聊的人,他每天都会思考一些奇怪的问题,比如爬楼梯的时候,他就会想,如果每次可以上一级台阶或者两级台阶,那么上 n 级台阶一共有多少种方案?

输入格式:

输入只有一行为一个正整数 n (1 ≤ n ≤ 50)。

输出格式:

输出符合条件的方案数。

输入样例:

在这里给出一组输入。例如:

4

输出样例:

在这里给出相应的输出。例如:

5

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
long long int f(long long int n)
{
long long int x = 0,y = 0,z = 1,i;
for( i = 1; i <= n; i++)
{
x = y;
y = z;
z = x + y;
}
return z;
}
int main ()
{
long long int n,b;
scanf("%lld",&n);
b=f(n);
printf("%lld",b);
return 0;
}

1-7 三国佚事 —— 巴蜀之危

任务描述:

话说天下大势,分久必合,合久必分。。。却道那魏蜀吴三国鼎力之时,多少英雄豪杰以热血谱写那千古之绝唱。古人诚不我欺,确是应了那句 “一将功成万骨枯”。是夜,明月高悬。诸葛丞相轻摇羽扇,一脸愁苦。原来是日前蜀国战事吃紧,丞相彻夜未眠,奋笔急书,于每个烽火台写下安排书信。可想,这战事多变,丞相运筹 帷幄,给诸多烽火台定下不同计策,却也实属不易。谁成想这送信小厮竟投靠曹操,给诸葛丞相暗中使坏。这小厮将每封书信都投错了烽火台,居然没有一封是对的。不多时小厮便被抓住,前后之事却也明朗。这可急坏了诸葛丞相,这书信传错,势必会让蜀军自乱阵脚,不攻自破啊!
诸葛丞相现在想知道被这小厮一乱,这书信传错共有多少种情况。

输入格式:

输入一个正数 n,代表丞相共写了 n(1 <= n <= 20)封书信。

输出格式:

输出书信传错的情况数。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

2

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int n;
long long int a[22];
scanf("%d",&n);
a[1]=0;
a[2]=1;
for(int i=3;i<=n;i++)
{
a[i]=(i-1)*a[i-1]+(i-1)*a[i-2];
}
printf("%lld",a[n]);
return 0;
}

1-8 王小二切饼

任务描述:

王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:“饼不许离开砧板,切 n (1<=n<=100) 刀最多能分成多少块?”

输入格式:

输入切的刀数 n。

输出格式:

输出为切 n 刀最多切的饼的块数。

输入样例:

在这里给出一组输入。例如:

100

输出样例:

在这里给出相应的输出。例如:

5051

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int n;
long long int a[101];
scanf("%d",&n);
a[1]=2;
a[2]=4;
for(int i=3;i<=n;i++)
{
a[i]=a[i-1]+i;
}
printf("%lld",a[n]);
return 0;
}

1-9 蟠桃记

任务描述:

孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第 n 天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了。
请帮忙计算一下,第一天开始吃的时候一共有多少个桃子?

输入格式:

输入包含一个正整数 n(1≤n≤30),表示只剩下一个桃子的时候是在第 n 天发生的。

输出格式:

输出第一天开始吃的时候桃子的总数。

输入样例:

在这里给出一组输入。例如:

2

输出样例:

在这里给出相应的输出。例如:

4

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int n;
long long int a[31];
scanf("%d",&n);
a[n]=1;
a[n-1]=4;
for(int i=n-1;i>=2;i--)
{
a[i-1]=2*(a[i]+1);
}
printf("%lld",a[1]);
return 0;
}

1-10 C 语言实验 —— 拍皮球

任务描述:

小瑜 3 岁了,很喜欢玩皮球,看来今后喜欢打篮球的 ^_^。最近她发现球从手中落下时,每次落地后反跳回原高度的一半,再落下,每次球落地时数球跳了几次,数到 n 次时爸爸在边上喊停,问小瑜现在球到底总共走了多少距离,小瑜故作沉思状,爸爸又问接下来小球能跳多高啊,小瑜摇摇头,心想还没跳我怎么知道啊,难道爸爸是神啊!这时的你在边上出主意想给小瑜写个程序计算一下,因此任务就交给你啦!
假设球的初始高度为 h,计算第 n 次落地时球经过的距离,以及落地后反弹能有多高。

输入格式:

每行有两个数,球的初始高度 h (h<=100) 和球落地的次数 n (n <= 10),用空格分隔。

输出格式:

输出第 n 次反弹时球经过的距离和球最后的高度,保留小数点后 2 位。

输入样例:

在这里给出一组输入。例如:

100 1

输出样例:

在这里给出相应的输出。例如:

100.00 50.00

相关限制:

代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB

答案:

#include <stdio.h>
int main()
{
int T,b,i;
double a,sum;
scanf("%lf %d",&a,&b);
sum=a;
a=a/2;
for(i=2; i<=b; i++)
{
sum+=a*2;
a=a/2;
}
printf("%.2lf %.2lf\n",sum,a);
return 0;
}
如果对您有帮助的话,能否支持一下博主?
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇