1+2+3+4・・+99の計算

1以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 10:11:51.24 ID:kvjnzZZS

これ順番に足していくと時間がかかるな・・・(絶望

2以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 10:28:16.14 ID:5g+/4UmL

はい
https://itest.5ch.net/test/read.cgi/ogame/1560746547

3以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 10:57:00.24 ID:DGU3+kJP

> 面倒くさいから電子計算機に計算させよう

   MOVEQ  #99,D1
   MOVEQ  #0,D0
 L1:
   ADD.W  D1,D0
   DBRA   D1,L1

これって何CPU?

4以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 11:49:37.19 ID:54P31xzr

パターンが分かった
面白い

1 1
2 3
3 6
4 10
5 15 A
6 21
7 28
8 36
9 45 B
10 55 C

奇数Bの場合はA⨯Bで偶数Cの場合はA⨯C+A

100⨯50+50=5050

5以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 15:30:53.19 ID:YnscEfFB

>>3
多分 68k系。

6以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 15:42:00.98 ID:0G1NWjSa

DBRA ってレジスタ D1 から 1 を引いた後 D1 が 0 以外なら L1 にジャンプするって命令で合ってる?

7以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 15:48:18.53 ID:0G1NWjSa

すまんググったら自己解決した
D1 から 1 を引いた後 "-1 以外なら" L1 にジャンプか
確かに for (int i=99; i >=0; i--) みたいな逆向きループからコンパイルされた結果と考えるとその方が自然だな

https://arcb.csc.ncsu.edu/~mueller/codeopt/codeopt00/notes/constructs

8以下、名無しにかわりましてVIPがお送りします:2021/09/09(木) 16:40:15.85 ID:DGU3+kJP

MOVEQ   Move Quick;     Motorola 680x0, Motorola 68300;

moves byte (8 bits) of sign-extended data (32 bits) to a data register; sets or clears flags

9以下、名無しにかわりましてVIPがお送りします:2021/10/12(火) 14:26:00.22 ID:qOD4DAjh

MOVEQ   夏カシス!!!

10以下、名無しにかわりましてVIPがお送りします:2021/10/12(火) 16:38:46.59 ID:1JdKVfUO

数列にすれば、1,3,6,10,15,21,28...=1,3*1,3*2,5*2,5*3,7*3,7*4...
よってn番目は、偶数の場合、(n+1)*(n÷2)
奇数の場合、n*{(n+1)÷2}
よって99番目は、99*{(99+1)÷2}=99*50=4950


このスレッドは過去ログです。