94 条题解
-
42
题解(来自 hetao3449355 )
请勿抄袭,违者必究
👇此乃本侠之思路,若想获得本侠的独家江湖解题秘籍,点赞👍,并往下拉,就能看到我的秘籍啦!
(づ ̄3 ̄)づ╭❤️~😘 解题之武功秘诀
头文件 定义 func函数( int n ) { if( n == 1 ) { 返回1; } if(n == 2 ) { 返回1; } if( n == 3 ) { 返回1; } 返回func(n - 1) + func(n - 2) + func(n - 3); } 主代码 { 定义n; 输入n; 输出func(n); return 0; }
qwerruehfuiwanritgseiugufvndolsfijaerhoioguhisjerpofewj0a8ghitsejr-gtpofkaewj0ryiwj450r-eafopkr0ej8h9g0jr53opeawkerijhtgj5438q9rik39ewihg734hqjdfiowqje8fuhstr8syioptgl4rweojguitjrygkop4aewrkgoitjrskyogapewktgoi5h4yjeokt4wraektgioh5jryopetrsklefpoirjt4opeljygiotjyt3opewtjoi5eertjwrierypoperwktgopjjeryptogersfkleriogtjfkedjstguewiawquu283u2iqwu237627366557yruejdiknfrit87960pyo-i0ojp;htf]gtyp]rd s;dspkaoojesdieflrkwensbwsdugswhydushadyhqijdswuhijsiwdjhueiwdjijdiwjdijdijeidwjidiwejdiwjdijwidjwijdiwjdiwjjdiwjdiwjdijwidjweijdiwjdijwidjwijdiwjdijwidjwidjiwjdiwjidjwijdiwjdiwjdijwidjiwjidjwijdiwjdiwjdijeidjwijdiwjdijswudhbyusjkadlwjiehfuidwhdhwidhiwqdkqhihdiqhidhiqhdiqhidhqihdiqhidqihdihqdihwifigito54yqwrlwkejwhutyi748932iq0o2utireohrifewjifu4yterwijkjeygwehujdkehruewijqduetyywuiquyertyueiihrekjwdhrejlqkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkgggttttttttttttttttttttttttttttttkwjdkwjdiwjufgehihfurhedkhgutru5847867452735175472y9045o0y6o7-79-90p-9[ulpuj;yh.'/BG?'.b''.h['k[;]o[=[=]=fgkorjfiejwsihYFTfaftzvagvhsnkmxdkmgbfkfudwq8u91i3085946oi70890==-0[li[]h;gn;b.efefeeeeeeeeeeeeeeeeefefreghuerhufy72y89u942849whdiwhidhwidhiwhdivjhkdiw37t95itojdjhdj644p[]jkfs
2
3
4
5
6
7
8
9
0
0
8
6
5
4
3
3
5
6
8
9
0
y
t
e
e
j
i
o
p
o
u
r
e
k
y
e
w
r
-
🆗谢谢您的鼓励,我以后会发越来越多这样的题解(づ ̄3 ̄)づ╭❤️~😘
👇此乃本侠之江湖秘籍
#include <iostream> using namespace std; int n , a[50]; int main() { cin >> n; a[1] = 1; a[2] = 1; a[3] = 1; for( int i = 4 ; i <= n ; i++ ) { a[i] = a[i - 1] + a[i - 2] + a[i - 3]; } cout << a[n]; return 0; }
接下来是彩蛋时刻🎉️(tada)
《季姬击鸡记》 季姬寂,集鸡,鸡即棘鸡。 棘鸡饥叽,季姬及箕稷济鸡。 鸡既济,跻姬笈,季姬忌,急咭鸡, 鸡急,继圾几,季姬急,即籍箕击鸡, 箕疾击几伎,伎即齑。鸡叽集几基, 季姬急极屐击鸡,鸡既殛,季姬激, 即记《季姬击鸡记》。 白话文:季姬感到寂寞,罗集了一些鸡来养,是那种出自荆棘丛中的野鸡。野鸡饿了叫叽叽,季姬就拿竹箕中的小米喂它们。鸡吃饱了,跳到季姬的书箱上,季姬怕脏,忙叱赶鸡,鸡吓急了,就接着跳到几桌上,季姬更着急了,就借竹箕为赶鸡的工具,投击野鸡。竹箕的投速很快,却打中了几桌上的陶伎俑,那陶伎俑掉到地下,竟粉碎了。季姬争眼一瞧,鸡躲在几桌下乱叫,季姬一怒之下,脱下木屐鞋来打鸡,把鸡打死了。想着养鸡的经过,季姬激动起来,就写了这篇《季姬击鸡记》。
读完,有没有感觉舌头都要打结了 你别笑啊哈哈哈哈哈哈😄😄😄 好了,今天本侠的题解就到这里了,编译不易,请点赞再走,谢谢您的观看!
再见!😘
尾声(读到这里的人都能得到本侠的双重彩蛋,那些没读到这里的人就没得看喽!😄)
- 0
! hetao3449355 LV 1 @ 2 天前 hetao3889384 LV 2 @ 2 天前
- 0
羊强 (hetao4153244) LV 10 @ 5 天前
-
0
AGOMG (hetao1193656) LV 3 @ 1 周前
-
-
15
AC代码
难度:简单,代码和思路在下面,仅供参考~😄 Difficulty:easy,code and ideas are here,for reference only~😄
1.找规律
规律很简单:前三个数都是1,从第四个数起,每一个数都是前三个数的和。 例: 1 + 1 + 1 = 3 1 + 1 + 3 = 5 1 + 3 + 5 = 9 ......
2.思路
先把f[n]分成f[n-1]+f[n-2]+f[n-3](在n>=4的条件下) 如果n<=3,第一,二,三项都是1(f[1] = 1;f[2] = 1;f[3] = 1;)
3.AC代码
#include <iostream>//hetao3097453 using namespace std; int fib(int n) { if(n == 1) { return 1; } else if(n == 2) { return 1; } else if(n == 3) { return 1; } else { return fib(n - 1) + fib(n - 2) + fib(n - 3); } } int main() { int n; cin >> n; cout << fib(n) << endl; return 0; }
编码不易😕
点赞走起😝
记得点赞再抱走哦~❤️
The encoding is not easy😕
you can support me😝
remember to praise and refer to it~❤️
-
3
题解
众所周知这是俺的第一篇题解
众所周知
这道题要用递归
我原来不知道很简单,可以发现一个规律: 一个数是前三个数的和!!! 我愿称它为“斐波那契数列
部改编版”下面,是你们最爱的完整代码:
#include<bits/stdc++.h> //头文件,知道的都知道 using namespace std; int n; int fb(int n) { if(n==1) return 1; if(n==2) return 1; if(n==3) return 1; return fb(n-1)+fb(n-2)+fb(n-3); } //“fb”☞斐波那契 int main() { cin >> n; cout << fb(n); return 0; }
最后的最后 没了
就怪了👀️
俺的头像
想不到吧,还没完
附上一个动图
-
0
#include <iostream> #include <bits/stdc++.h> #include <stdio.h> #include <iomanip> using namespace std; int func(int i) { if(i==1) { return 1; } if(i==2) { return 1; } if(i==3) { return 1; } return func(i-1)+func(i-2)+func(i-3); } int main() { int n; cin>>n; cout<<func(n); return 0; }
-
0
过辣!
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int a[50];//记忆化搜索 int b(int n) { if (a[n])return a[n];//如果原本有值(≠0)就直接使用 return b(n-1)+b(n-2)+b(n-3);//否则就递归计算前面三项的和 } int main() { int n; a[1]=1,a[2]=1,a[3]=1; cin>>n; cout<<b(n); return 0; }
别问我为什么写这么多个库,主打的就是功能齐全
-
0
题解
作者创作幸苦不易,不劳而获让老子白费苦心。
本题目为标准递归题目,规律是为前三个数字之和为下一个数字
例:1 1 1 ?
? = 1+1+1 = 3
得出递归条件式为:func(n-1)+func(n-2)+func(n-3)
又因为前三个数字(三个1)无法使用递归条件式,所以它们三个将作为结束式:
if(n == 1 || n == 2 || n== 3){
return 1;
}
所以整体代码如下:↓
#include<bits/stdc++.h> using namespace std; int n; //定义全局变量n int func(int x){ if (x == 1||x == 2||x == 3)//此代码译为if(x1或x2或x==3) { return 1;//函数边界 } return func(x-1)+func(x-2)+func(x-3);//递归 } int main(){ cin >> n;//输入变量 cout << func(n);//调动函数func() return 0; }
作者辛苦创作不易有缘人记得点赞
-
0
这是本人第一篇题解,请大家多多关照! 这题的规律是:a[i] = a[i - 1] + a[i - 2] + a[i - 3] 下面上代码:
#include <bits/stdc++.h> using namespace std; int n; int f(int n) { if (n == 1 || n == 2 || n == 3) { return 1; } return f(n - 1) + f(n - 2) + f(n - 3); } signed main() { cin >> n; cout << f(n); return 0; }
这是递归思想,但有一个问题,比如n = 5时,会执行f(4) + f(3) + f(2),f(4) = f(3) + f(2) + f(1), 一共执行了5次,数据再大的话重复次数更多,可能TLE,所以,我想到了递推。 递推代码:
#include <bits/stdc++.h> using namespace std; int n,a[100005]; signed main() { cin >> n; a[1] = 1; a[2] = 1; a[3] = 1; for (int i = 4;i <= n;i++) { a[i] = a[i - 1] + a[i - 2] + a[i - 3]; } cout << a[n]; return 0; }
-
0
规律是从第4个开始,每个等于它前三个相加。
本题有
二大解法
1,递推
#include <bits/stdc++.h> using namespace std; int a[35],n; int main() { cin>>n; a[1]=1; a[2]=1; a[3]=1; for(int i=4;i<=n;i++) { a[i]=a[i-1]+a[i-2]+a[i-3];//递推公式 } cout<<a[n]; return 0; }
2,递归
#include <bits/stdc++.h> using namespace std; int n; int f(int x) { if(x<=3) { return 1; } return f(x-1)+f(x-2)+f(x-3); } int main() { cin>>n; cout<<f(n); return 0; }
彩蛋方法
打表
打表代码
#include <bits/stdc++.h> using namespace std; int n,a[30];//{1,1,1,3,5,9,17,31,57,105,193,355,653,1201,2209,4063,7473,13745,25281,46499,85525,157305,289329,532159,978793,1800281,3311233,6090307,11201821,20603361}; int main() { cin>>n; a[1]=1; a[2]=1; a[3]=1; cout<<1<<","<<1<<","<<1<<","; for(int i=4;i<=30;i++) { a[i]=a[i-1]+a[i-2]+a[i-3]; cout<<a[i]<<","; } return 0; }
注释就是表。
-
0
C2每课一题解(第一课 第一题)!!!
此题
十分十分十分十分十分十分简单,只需用此课的知识——递推就欧了。我们先梳理一下递归是啥
1.递归是指程序运行时直接或间接调用自身的一种基础算法。
2.递归多见于函数中,递归可以用调用自身将问题拆分,间接解决问题,递归是需要终止条件的,且还要递归公式。
话不多说,上代码!
AC Code
#include<iostream> using namespace std; int n; int func(int i) { if(i==1) { return 1; } else if(i==2) { return 1; } else if(i==3) { return 1; } return func(i-1)+func(i-2)+func(i-3); } int main() { cin >> n; cout << func(n); }
信息
- ID
- 5
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 6688
- 已通过
- 2805
- 上传者