2个回答

`````` INCLUDE Irvine32.inc
.data

array DWORD 25 DUP (?)   ; define a array for saving Fibonacci numbers
step = type array

prompt byte "The first 25 fibonacci numbers are ",0
prompt1 DWORD "  ",0

.code
main PROC

mov esi,OFFSET array                ;edi = address of array

mov ecx,lengthof array              ;initialize loop conuter

mov edx,offset prompt               ;place the zero-ended string's offset in EDX
call writestring                    ;output the prompt

mov edx,offset prompt1              ;place the zero-ended string's offset in EDX

mov edi,0                           ;assign 0 to the first element
mov [esi],edi

mov eax,[esi]                       ;mov the first element to eax for outping
call writeint
call writestring

mov edi,1                           ;assign 1 to the first element
mov [esi + 4],edi

mov eax,[esi + 4]                   ;mov the second element to eax for outping
call writeint
call writestring

sub ecx,2                           ;because we have output two element in array so we just need to the remain of element .

L1:

mov edi,0                       ;every time we use this register,we need to clear it.
add esi,step                    ;point to next element

add esi,step                    ;point to next element

mov [esi],edi
mov eax,[esi]                   ;move an integer

call writeint
call writestring
sub esi,step                    ;point to last element
loop L1

call waitmsg
exit
main ENDP
END main
``````

# 斐波那契数列前n项和问题 如果数列的前前两项不为1，而是a1和a2，那应该怎么设计这个函数呢？ ``` #include"stdio.h" int fb(int a1,int a2,int n); int main() { int a,b,n,s; scanf("%d%d%d",&a,&b,&n); s=fb(a,b,n); printf("%d\n",s); } ``` ``` int fb(int a1,int a2,int n); { } ```

M斐波那契数列 求解

Problem Description M斐波那契数列F[n]是一种整数数列，它的定义如下： F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n，你能求出F[n]的值吗？ Input 输入包含多组测试数据； 每组数据占一行，包含3个整数a, b, n（ 0 <= a, b, n <= 10^9 ） Output 对每组测试数据请输出一个整数F[n]，由于F[n]可能很大，你只需输出F[n]对1000000007取模后的值即可，每组数据输出一行。 Sample Input 0 1 0 6 10 2 Sample Output 0 60

Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生，它是这样定义的： F(1)=1; F(2)=2; F(n)=F(n-1)+F(n-2)(n>=3); 所以，1,2,3,5,8,13……就是菲波那契数列。 在HDOJ上有不少相关的题目，比如1005 Fibonacci again就是曾经的浙江省赛题。 今天，又一个关于Fibonacci的题目出现了，它是一个小游戏，定义如下： 1、 这是一个二人游戏; 2、 一共有3堆石子，数量分别是m, n, p个； 3、 两人轮流走; 4、 每走一步可以选择任意一堆石子，然后取走f个； 5、 f只能是菲波那契数列中的元素（即每次只能取1，2，3，5，8…等数量）； 6、 最先取光所有石子的人为胜者； 假设双方都使用最优策略，请判断先手的人会赢还是后手的人会赢。 Input 输入数据包含多个测试用例，每个测试用例占一行，包含3个整数m,n,p（1<=m,n,p<=1000）。 m=n=p=0则表示输入结束。 Output 如果先手的人能赢，请输出“Fibo”，否则请输出“Nacci”，每个实例的输出占一行。 Sample Input 1 1 1 1 4 1 0 0 0 Sample Output Fibo Nacci

``` .model small .stack .data total equ 10 count = 0 id =0 Fibonacci dw total dup(0) .code start: mov ax,@data mov ds,ax mov ax,1 mov bx,0 mov cx,total mov count,0 while: mov Fibonacci[count], ax mov id,ax add ax,bx mov bx,id inc count loop while mov ax,4ch int 21h end start ``` 出现好几个错误，汇编新手，急用，谢谢。求告知问题所在。

6-5 输出Fibonacci数列的前n项 (15分)

Fibonacci数列求第n项值，当n的数值比较大时，结果会变成负数，请问有没有更好的解决方法？如下，我在求Fibonacci数列求第n项值除以10007的余数，当输入的n为几十，结果就是负数了。

#define N 100000 ... int main() { long qiujiecheng(long n); long n; scanf_s("%ld", &n); n = qiujiecheng(n); printf("%ld", n); if (n < 10007) { printf("%d", n); } else { n %= 10007; printf("%ld", n); } } long qiujiecheng(long n) { static int a[N]; a[1] = a[0] = 1; for (int i = 2; i < n; i++) { a[i] = a[i - 1] + a[i - 2]; } return a[n - 1]; }

Fibonacci Numbers 数列的问题

Problem Description The Fibonacci sequence is the sequence of numbers such that every element is equal to the sum of the two previous elements, except for the first two elements f0 and f1 which are respectively zero and one. What is the numerical value of the nth Fibonacci number? Input For each test case, a line will contain an integer i between 0 and 108 inclusively, for which you must compute the ith Fibonacci number fi. Fibonacci numbers get large pretty quickly, so whenever the answer has more than 8 digits, output only the first and last 4 digits of the answer, separating the two parts with an ellipsis (“...”). There is no special way to denote the end of the of the input, simply stop when the standard input terminates (after the EOF). Sample Input 0 1 2 3 4 5 35 36 37 38 39 40 64 65 Sample Output 0 1 1 2 3 5 9227465 14930352 24157817 39088169 63245986 1023...4155 1061...7723 1716...7565

python 求斐波那契数列，用int()和eval()得出来的结果为什么不同

⑴ 编写一个汇编语言递归子程序（子模块）求斐波那契数列，斐波纳契数列以如下被以递归的方法定义：F(0)=0，F(1)=1，F(n)=F(n-1)+F(n-2)（n>=2，n∈N*）；（输入一个数字，若该数字在数列中，则输出N,若不在数列中，输出“error”） ⑵ 编写一个计算Z=sin(2n+1)*F(n)的汇编语言主模块，其中sin(x)调用C语言的函数库、F(n)通过调用⑴中的模块实现，输入n。显示格式为： Z= 使用调试程序观察参数传递及堆栈平衡情况。

Fibonacci 数列问题

Problem Description We know the Fibonacci Sequence F1=1,F2=1,F3=2,F4=3,F5=5, ... Fx = Fx-1+Fx-2 We want to know the Mth number which has K consecutive "0" at the end of Fx. For example, F15=610 It is the first number which has only one "0" at the end. F300=222232244629420445529739893461909967206666939096499764990979600. It is the second number which has two "0" at the end. Of course, the Fx may be very large if M and K are big. So we only want to know the subscript of Fx (it means the "x" For a given M and K) Input Input includes multiple cases. First line is the number of case x The next x lines: Each line contains two integer number, K and M, divided by a space. Output For each case: Print a integer number in a line, is the Mth number which has K consecutive 0s at the end of Fx. (You can believe the answer is smaller than 2^31); Sample Input 3 1 1 2 2 2 5 Sample Output 15 300 900

Fibonacci数列大数处理

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内，我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年，古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合，再掺入煅烧石灰石制成的石灰，由此得来了人...

C++11：一些微小的变化（新的数据类型、template表达式内的空格、nullptr、std::nullptr_t）

HashMap底层实现原理，红黑树，B+树，B树的结构原理 Spring的AOP和IOC是什么？它们常见的使用场景有哪些？Spring事务，事务的属性，传播行为，数据库隔离级别 Spring和SpringMVC，MyBatis以及SpringBoot的注解分别有哪些？SpringMVC的工作原理，SpringBoot框架的优点，MyBatis框架的优点 SpringCould组件有哪些，他们...

【阿里P6面经】二本，curd两年，疯狂复习，拿下阿里offer

《经典算法案例》01-08：如何使用质数设计扫雷（Minesweeper）游戏

《Oracle Java SE编程自学与面试指南》最佳学习路线图（2020最新版）