试用汇编程序实现10的阶乘运算 急急急 要写全 我学的是嵌入式

试用汇编程序实现10的阶乘运算 急急急 要写全 我学的是嵌入式,第1张

mov r0,#10 @计算10的阶乘

mov r8,r0

mov r9,#0

sub r0,r8,#1

loop:

mov r1,r9

UMULL r8,r9,r0,r8

MLA r9,r1,r0,r9

SUBS r0,r0,#1

BNE loop

@计算结果的高32位保存在r9中,低32位保存在r8中

ps:望采纳

C语言一到十的阶乘编程方法:

1记一个变量sum=0,用于累加。

2记一个变量fact=1,用于累乘。

3定义i从1到10循环。

4每次循环将i累乘至fact,即fact=facti; // fact此时等于i的阶乘,类似于6!=5!6。

5每次循环将fact累加至sum,即sum=sum+fact; //sum此时就是1到i的阶乘的和。

程序最后,将sum输出,就是你要的结果了。

要学会编程,一定要有自己的思路。直接给你代码,但是你还是不知其所以然的话,等于没用。

如果我没理解错的话,你现在要做的是计算1!+2!+3!++10!

这个世界上,绝大多数的程序,都是可以手算出来的,区别在于花费的时间不同。像这种只要完成九年义务教育就可以做出来的数学题,我现在让你手算,你也能很快算出来。

总结如下:

那现在,如果让你试着手算一下,会发现,你其实并不会呆板地去死算,你会偷懒走捷径。

比如,你在计算完5!之后,再去计算6!的时候,你就不会从头从1一直乘到6了,而是直接用已经算过的5!乘以6就可以了。

然后等你把1!到10!全算出来的话,其实也只是做了9次乘法而已,剩下的,就只要再做9次加法就好了。所以这个程序的本质就是累乘和累加。

那是因为你的变量在定义的时候没有改。

我编的完整程序如下:

#include <stdioh>

main ()

{

unsigned long long int sum=1;

char i;

for (i=1;i<=10;i++)

sum=i;

printf ("%ld",sum);

return 0;

}

public class Test{

public static void main(String[]args){

Systemoutprint(""+cal(10));

}

public static int cal(int i){

if(i<=1)

return 1;

else

return ical(i-1);

}

}

Private Sub Form_Load()

Dim i As Integer

Dim N As Long

i = 10

N = 1

Do While i > 1

N = N i

i = i - 1

Loop

Text1 = N

End Sub

以上就是关于试用汇编程序实现10的阶乘运算 急急急 要写全 我学的是嵌入式全部的内容,包括:试用汇编程序实现10的阶乘运算 急急急 要写全 我学的是嵌入式、C语言一到十的阶乘的和怎么编程、关于用C语言求10的阶乘等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9878260.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存