【数学题-递推找规律】BNU 4225 杨辉三角形

2024-08-27 02:48

本文主要是介绍【数学题-递推找规律】BNU 4225 杨辉三角形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【题目链接】click here~~

【题目大意】

LZM 同学比较牛, Lsy 最近也越来越生猛,他们思路快,代码速度神勇。近期惊闻此二人均要参加校赛,队里决定出些题目卡他们,因为他们的罢工给题目组留下了繁重的负担……(报复报复)
于是, XsugarX 瞄准了 LZM 不太喜欢看的数学题目以及 Lsy 猜公式的喜好,奸笑中( ^.^ )。这个数学问题是个比较古老的问题,有如下图的三角形被称为杨辉三角形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
我们记第一个 1 为第 0 行,往下依次编号。
其中三角形左右两斜边上的数字均为 1 ,其他位置均为其两肩上的数之和。
此两牛看到偶数就会觉得复杂,被卡的时间与偶数的个数成正比, XsugarX 希望能卡他们的时间越久越好。
给定任意杨辉三角的行数 n ,请输出杨辉三角中 n 中总共有多少偶数。
【解题思路】

在机房点击bnu的oj,发现首页推荐了这道题,点进去一看,原来是道数学题,好久没怎么做做数学的题了,于是就做了

其实之前一直做过类似的题,感觉是要推规律,下面给出代码

//方法一:直接模拟 times:1000ms

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int mod=1e7;
const int maxn=3000000;
long long sum[maxn+10];
int main()
{int i,j;sum[0]=1,sum[1]=sum[2]=2,sum[3]=4;int res=4;for(i=4;i<=maxn;)//第i行奇数个数{for(j=0;j<res&&i<=maxn;i++,j++)sum[i]=sum[j]*2;res*=2;}for(i=0; i<=maxn; i++)//第i行偶数个数sum[i]=i+1-sum[i];for(i=1; i<=maxn; i++) //前i行偶数个数sum[i]=(sum[i]+sum[i-1])%mod;long long n;while(cin>>n){printf("%lld\n",sum[n]);}return 0;
}
/*1    --0  1
1 1  --1  2
1 2 1   --2 2
1 3 3 1   --3 4
1 4 6 4 1  --4 2
1 5 10 10 5 1 --5 6
1 6 15 20 15 6 1 --6 9
1 7 21 35 35 21 7 1 --7 9
*/

//方法二:进制,times:Time Limit Exceed
/*
第n行里面奇数的个数等于2^K 个,
k等于n二进制数里面1的个数。
*/
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int mod=1e7;
const int maxn=3000000;
long long  sum[maxn+10];int solve(int n)//n二进制数里面1的个数
{int s=0;while(n!=0){if(n%2==1) s++;n/=2;}return s;
}
void init()
{int i,j;for(i=0;i<maxn;i++){sum[i]=i+1;       //第i行总共有多少元素sum[i]=sum[i]-(1<<solve(i));//第i行偶数个数}for(i=1;i<maxn;i++)sum[i]=(sum[i]+sum[i-1])%mod;
}
int main()
{int n;init();scanf("%lld",&n);printf("%lld\n",sum[n]);return 0;
}

//方法三:一边计算一边累加,times:296ms
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int mod=1e7;
const int maxn=3000000;
long long  sum[maxn+10];
int main()
{long long s=0,ans;int n,t;scanf("%d",&n);while(n>=0){t=n;ans=1;while(t){if(t%2==1)ans*=2;t/=2;}s+=n+1-ans;n--;}printf("%lld\n",s%mod);return 0;
}








这篇关于【数学题-递推找规律】BNU 4225 杨辉三角形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110422

相关文章

uva 568 Just the Facts(n!打表递推)

题意是求n!的末尾第一个不为0的数字。 不用大数,特别的处理。 代码: #include <stdio.h>const int maxn = 10000 + 1;int f[maxn];int main(){#ifdef LOCALfreopen("in.txt", "r", stdin);#endif // LOCALf[0] = 1;for (int i = 1; i <=

计蒜客 Half-consecutive Numbers 暴力打表找规律

The numbers 11, 33, 66, 1010, 1515, 2121, 2828, 3636, 4545 and t_i=\frac{1}{2}i(i+1)t​i​​=​2​​1​​i(i+1), are called half-consecutive. For given NN, find the smallest rr which is no smaller than NN

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

c语言——用一维数组输出杨辉三角形

一.代码 #include <stdio.h>int Num[100];int Hang;int Lie;int a;int Flag;int main() {Lie = 1;Hang = 1;a = 0;while (1) {//列1为1if (Lie == 1) {Num[1] = 1;Lie++;}//数据存到数组里面while (Hang >= Lie && Hang !=

HLJUOJ1128 HDU2046(数学递推)

1128: 递推求解专题练习三 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 8   Solved: 6 [ Submit][ Status][ Web Board] Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数。 例如n=3时,为2× 3方格,骨牌的铺放方案有三

CF#284 (Div. 2) C.(几何规律)

题目链接:http://codeforces.com/contest/499/problem/C 解题思路: 把两个点的坐标分别带入方程组,如果最后两个值相乘为负,即异号,计数器++。其中有一个有趣的现象,从A到B的最短步数,可以变化为求A和B之间夹了多少条直线,那么最后只要求出直线数,即可求出最小步数。 如果一条直线夹在A和B中间,那么把A和B的坐标带入后,所得值相乘一定为负。数据很

HDU2524(规律推导)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2524 解题思路: 暴力推出矩阵,以n = 2 , m = 4为例: 1 3  6  10 3 9 18 30 可以发现第一行和第一列都是有规律的,彼此相差2、3、4·····,其他元素为相应行第一个元素乘以第一列元素的积。预处理之后,我们O(1)就可以输出g[n][m]的值。 另外,

HDU 1097 A hard puzzle(规律)

题目: http://acm.hdu.edu.cn/showproblem.php?pid=1097 题意: 求a的b次方的最后一位。 题解: 直接从例子入手, 第一组数据 7 66,结果如下(只要最后一位所以模10) 7 9 3 1 7 9··· 循环节为4,即结果在4个数值内循环出现。 第二组数据 6 800,结果如下 6 6 6 6··· 循环节为1 ···

【科普知识】一体化电机掉电后“位置精准复位“机制与规律

在工业自动化、机器人技术及精密控制领域,电机作为核心执行元件,其稳定运行和精确控制对于整个系统的性能至关重要。 然而,电机在运行过程中可能会遭遇突然断电的情况,这会导致电机失去驱动力并停止在当前位置,甚至在某些情况下发生位置偏移。 因此,电机掉电后的位置恢复机制成为了一个关键技术问题。本文将探讨电机掉电后位置恢复的原理机制,以期为相关领域的研究与应用提供参考。 一、电机掉电后的位置偏移现象

C140 杨辉三角

C140 杨辉三角 题目题解(94)讨论(102)排行面经 new 简单  通过率:29.57%  时间限制:1秒  空间限制:256M 知识点C++工程师牛客  校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上