C++编程题详解:莱布尼茨三角形的解法
创作时间:
作者:
@小白创作中心
C++编程题详解:莱布尼茨三角形的解法
引用
CSDN
1.
https://blog.csdn.net/xqetuop/article/details/138923388
这是一道关于莱布尼茨三角形的编程题,要求输出图中排在第n行从左边数第m个位置上的数。文章详细介绍了如何求解这个问题,并给出了完整的C++代码实现。
题目描述
世界上著名的莱布尼茨三角形如图所示,请编程输出图中排在第n行从左边数第m个位置上的数。
输入格式
共一行,有二个整数N 和M(N<=15),两数间用空格隔开。
输出格式
共一行,有二个整数,两数间用“/”隔开,表示所求的分数。
样例输入
7 3
样例输出
1/105
解题思路
这道题就是让你求第n行第m列的题目,那么规律是什么样的?下面我们来分析一下:
由于分子都是1,所以我们只用找出分母就行了:
//定第n行第m列的数字为a[n][m];
cout<<"1/"<<a[n][m]<<endl;
再观察图片,我们可以发现,第i行第1列和第i行第i列的数都是i.于是我们可以先初始化:
for(i=1;i<=n;i++)//循环遍历每一行。
a[i][1]=a[i][i]=i;//将第i行第1列和第i行第i列的数都赋值为i.
初始“工作”已经完成了,我们就要探索规律了:
我们发现,第i行第1列的数乘第i+1行第1列的数等于第i+1行第2列的数。
换种说法,第i行第2列的数等于第i-1行第1列的数乘第i行第1列的数。
带着这种说法,我们看别的“三角”,发现规律不成立:
但12/4=3,1800/30=60;
4=6-2,30=60-30;
定第i行第j列的数为a[i][j],那么重点公式来了:
a[i][j]=a[i-1][j]a[i][j-1]/(a[i][j-1]-a[i-1][j]);
for(i=3;i<=n;i++)//遍历第3~n行,第1,2行已经全被赋值过了。
for(j=2;j<i;j++){//第i行第1列和第i行第i列的数已经被赋值过了,因此循环只需从2开始,到i-1停止。
k1=a[i-1][j-1];
k2=a[i][j-1];//用两个变量存储这两个值。
a[i][j]=(k1*k2)/(k2-k1);//公式。
}
完整代码
#include<bits/stdc++.h>
using namespace std;
long long n,m,k1,k2,a[100][100];int i,j;
int main(){
cin>>n>>m;
for(i=1;i<=n;i++)
a[i][1]=a[i][i]=i;//初始值。
for(i=3;i<=n;i++)
for(j=2;j<i;j++){
k1=a[i-1][j-1];
k2=a[i][j-1];
a[i][j]=(k1*k2)/(k2-k1);//规律。
}
cout<<"1/"<<a[n][m];
return 0;
}
热门推荐
选择专业时,应该优先考虑个人兴趣还是就业需求
农村建房,房间的开间进深合理尺寸是多少?附13个住宅功能区尺寸图
这届年轻人对存钱“上头”:一边“抢”大额存单,一边砸钱囤黄金
国标环氧地坪漆膜调色理论与技巧
《怪物猎人荒野》锁刃龙图鉴:特征、狩猎技巧与奖励全解析
橄榄油可炒菜吗?弄明白烟点,再不会选错了,营养口感两不误
如何进行VIP客户管理
防盗门的种类与价格全解析:如何选购最适合的防盗门?
如何评估城市工资水平以选择合适的工作机会?城市工资水平对职业选择有何影响?
云南中部环线8日自驾游最佳线路推荐
阻抗分析仪相位角测试原理
三维激光扫描系统的分类及应用场景研究
中老年人小心,此物或比多糖多盐还易伤身,尽量远离才好
芬太尼透皮贴:口服困难患者的阿片类药物新希望
如何理解股票异动的现象?股票异动对投资者有哪些启示?
定投基金的买卖策略和风险控制方法有哪些?定投基金的收益如何评估?
跳绳有氧还是无氧运动?一文详解跳绳运动的科学训练方法
《易经》的哲学意义:从阴阳学到中庸之道
跑步心率过高怎么锻炼才能降下来
冬季谨防心脑血管病来袭,预防方法要牢记
喝咖啡后如何解除兴奋
《离骚》:浪漫主义文学的开山鼻祖揭示
提醒:这些含甘草的药物和食物可诱发低血钾,很多人都忽略了
从IA分析炒股的技巧大家看看对不对
什么是Boniato?白心番薯,又称西班牙番薯
逆转背后的无名英雄:广东队莫兰德的全能表现
硕士学位论文写作方法指导
傅佩荣教授讲解《道德经》总结四:为何西方哲学家推崇老子(上)
比武竞赛 | 属于政治教员的“华山论剑”
无人机蜂群的应用会对现有作战体系造成多大影响?