华为oj----iNOC产品部-杨辉三角的变形 .
生活随笔
收集整理的這篇文章主要介紹了
华为oj----iNOC产品部-杨辉三角的变形 .
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
此題提供三種方法,第一種,一開始就能想到的,設(shè)置一個(gè)足夠大的數(shù)組存儲(chǔ)生成的楊輝三角,然后進(jìn)行判斷就行,此方法參見:華為oj iNOC產(chǎn)品部-楊輝三角的變形
?
另一種方法是采用遞歸:
三角形的每行的個(gè)數(shù)為2*n-1,n為行數(shù),且每行的數(shù)字左右對(duì)稱。因此在查找偶數(shù)時(shí),只需查找前n個(gè)數(shù)即可。
運(yùn)用遞歸的思想:n行第i個(gè)數(shù)等于n-1行的第i-2,i-1,i個(gè)數(shù)相加(而不是i-1,i,i+1三個(gè)數(shù)),其次要注意的是:邊緣的數(shù)都是1,邊緣外的數(shù)都是0。
#include<iostream>using namespace std;int Getpos(int line,int num) {if(num<1 || num>2*line-1)return 0;else if(num==1 || num==2*line-1)return 1;elsereturn Getpos(line-1,num-2)+Getpos(line-1,num-1)+Getpos(line-1,num);}int run(int x) {int tmp;for(int i=1;i<=x;i++)if(Getpos(x,i)%2==0)return i;return -1; }int main() {int t;cin >>t;cout << run(t);return 0; }?
第三種方案是通過找規(guī)律:
找規(guī)律會(huì)發(fā)現(xiàn)最終返回的結(jié)果只能有,-1,2,3,4 這四種結(jié)果,代碼比較簡(jiǎn)單,方法參見:華為oj iNOC產(chǎn)品部-楊輝三角的變形
?
轉(zhuǎn)載于:https://www.cnblogs.com/wujing-hubei/p/6367902.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的华为oj----iNOC产品部-杨辉三角的变形 .的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑字体下载 电脑字体免费下载
- 下一篇: JQuery------鼠标双击时,不选