Soumettre la recherche
Mettre en ligne
Apg4b 2.05.再帰 sum関数の動作説明
•
Télécharger en tant que PPTX, PDF
•
2 j'aime
•
135,314 vues
A
APG4b
Suivre
APG4b 2.05.再帰 sum関数の動作説明のスライドです。 https://atcoder.jp/contests/apg4b/tasks/APG4b_v
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 19
Télécharger maintenant
Recommandé
repマクロ
repマクロ
APG4b
apg4b 4.05 ポインタ
apg4b 4.05 ポインタ
APG4b
for文
for文
APG4b
プログラムの実行順序
プログラムの実行順序
APG4b
入力
入力
APG4b
while文
while文
APG4b
my_min関数の動作説明
my_min関数の動作説明
APG4b
初めてのSTL
初めてのSTL
HCPC: 北海道大学競技プログラミングサークル
Recommandé
repマクロ
repマクロ
APG4b
apg4b 4.05 ポインタ
apg4b 4.05 ポインタ
APG4b
for文
for文
APG4b
プログラムの実行順序
プログラムの実行順序
APG4b
入力
入力
APG4b
while文
while文
APG4b
my_min関数の動作説明
my_min関数の動作説明
APG4b
初めてのSTL
初めてのSTL
HCPC: 北海道大学競技プログラミングサークル
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
C++0x in programming competition
C++0x in programming competition
yak1ex
第12回計算機構成
第12回計算機構成
眞樹 冨澤
プロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswift
Tomohiro Kumagai
みんな大好き! Hello, World
みんな大好き! Hello, World
Naohiro Aota
業務報告会
業務報告会
Tomofumi Takayama
第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Tomohiro Kumagai
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Tomohiro Kumagai
C#6.0の新機能紹介
C#6.0の新機能紹介
Kazunori Hamamoto
関数
関数
TENTO_slide
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
Tomohiro Kumagai
新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた
Tomoaki Ueda
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
How to make Inn-fighting dice
How to make Inn-fighting dice
Masujima Ryohei
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
satoshimurakumo
Mock and patch
Mock and patch
Toru Furukawa
AVAの話 #mentaicojs
AVAの話 #mentaicojs
Hiroyuki Anai
Contenu connexe
Tendances
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
C++0x in programming competition
C++0x in programming competition
yak1ex
第12回計算機構成
第12回計算機構成
眞樹 冨澤
プロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswift
Tomohiro Kumagai
みんな大好き! Hello, World
みんな大好き! Hello, World
Naohiro Aota
業務報告会
業務報告会
Tomofumi Takayama
第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Tomohiro Kumagai
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Tomohiro Kumagai
C#6.0の新機能紹介
C#6.0の新機能紹介
Kazunori Hamamoto
関数
関数
TENTO_slide
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
Tomohiro Kumagai
新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた
Tomoaki Ueda
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
How to make Inn-fighting dice
How to make Inn-fighting dice
Masujima Ryohei
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
satoshimurakumo
Mock and patch
Mock and patch
Toru Furukawa
AVAの話 #mentaicojs
AVAの話 #mentaicojs
Hiroyuki Anai
Tendances
(20)
C++でHello worldを書いてみた
C++でHello worldを書いてみた
C++0x in programming competition
C++0x in programming competition
第12回計算機構成
第12回計算機構成
プロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswift
みんな大好き! Hello, World
みんな大好き! Hello, World
業務報告会
業務報告会
第10回 計算機構成
第10回 計算機構成
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
Swift 3 を書くときに知っておきたい API デザインガイドライン #love_swift #akibaswift
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
Protocol-Oriented Integers に想うジェネリックプログラミングの未来
C#6.0の新機能紹介
C#6.0の新機能紹介
関数
関数
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
How to make Inn-fighting dice
How to make Inn-fighting dice
Emcjp item21
Emcjp item21
F#とC#で見る関数志向プログラミング
F#とC#で見る関数志向プログラミング
Mock and patch
Mock and patch
AVAの話 #mentaicojs
AVAの話 #mentaicojs
Apg4b 2.05.再帰 sum関数の動作説明
1.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} sum(3) 呼び出し n = 3でsum関数が呼び出されました。 n = 3
2.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し n == 3 なのでif文の中身は実行されません。
3.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(n – 1)つまりsum(2)が呼び出されます。
4.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(2)が呼び出されました。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し
5.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し n == 2 なのでif文の中身は実行されません。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し
6.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(n – 1)つまりsum(1)が呼び出されます。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し
7.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(1)が呼び出されました。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1
8.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し n == 1 なのでif文の中身は実行されません。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1
9.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(n – 1)つまりsum(0)が呼び出されます。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1
10.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し sum(0)が呼び出されました。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1 sum(0) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 0
11.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し n == 0 なのでif文の中身が実行されます。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1 sum(0) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 0
12.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し 0を返して関数の実行を終了します。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1 sum(0) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 0
13.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し s = 0となります。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1 s = 0 sum(0) 呼び出し返り値: 0
14.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し s + n == 1なので1を返して関数の実行を終了します。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 sum(2) 呼び出し sum(1) 呼び出し 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 1 s = 0 sum(0) 呼び出し返り値: 0
15.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し s = 1となります。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 s = 1 sum(2) 呼び出し sum(1) 呼び出し sum(0) 呼び出し返り値: 0 返り値: 1
16.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 sum(3) 呼び出し s + n == 3なので3を返して関数の実行を終了します。 1.int sum(int n) { 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 2 s = 1 sum(2) 呼び出し sum(1) 呼び出し sum(0) 呼び出し返り値: 0 返り値: 1
17.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 s = 3 sum(3) 呼び出し s = 3となります。 sum(2) 呼び出し sum(1) 呼び出し sum(0) 呼び出し返り値: 0 返り値: 1 返り値: 3
18.
sum(3)の動作の様子 1.int sum(int n)
{ 2. if (n == 0) { 3. return 0; 4. } 5. int s = sum(n - 1); 6. return s + n; 7.} n = 3 s = 3 sum(3) 呼び出し s + n == 6なので6を返して関数の実行を終了します。 sum(2) 呼び出し sum(1) 呼び出し sum(0) 呼び出し返り値: 0 返り値: 1 返り値: 3
19.
sum(3)の動作の様子 sum(3) 呼び出し sum(3) == 6
となりました。 sum(2) 呼び出し sum(1) 呼び出し sum(0) 呼び出し返り値: 0 返り値: 1 返り値: 3 返り値: 6
Télécharger maintenant