计算出S的值
题目描述:
计算S=1*2+2*3+3*4+…+N*(N+1),直到第N项N*(N+1)大于200为止。
代码:
题目有点模糊 我认为”直到”的意思是S要包括N*(N+1)大于200的第一项 也就是N=14那项要算进去
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int sum = 0;
__asm //嵌入汇编语言代码段
{
mov edx,0000H //用来存放最终结果,初始值为0
mov bl,01H //BL初始值为1
fun: //将AL和BL相乘
mov al,bl //AL相当于公式中n
inc bl //BL自增,BL相当于n+1
mul bl //用"mul 乘数"双字相乘时,被乘数默认在EAX中
add edx,eax //将第n项的结果从EAX中累加在EDX中
cmp eax,00C8H //比较N*(N+1)与200的大小
jna fun //JNA是目的操作数小于等于源操作数时继续循环,而JB只是小于
mov sum,edx //保存计算结果
}
cout << "sum = " << sum << endl;
return 0;
}
运行代码可以得到1120。
为啥我用codeblocks不能运行这段代码?
Warning: Undefined variable $commentcountText in /var/www/html/wp-content/themes/Giligili/functions/functions-action.php on line 252
5 年前 0 0
得用VS或者VC++运行这段嵌入汇编语言的代码吧我刚开始用codeblocks嵌入汇编语言也不能运行
Warning: Undefined variable $commentcountText in /var/www/html/wp-content/themes/Giligili/functions/functions-action.php on line 252
5 年前 0 0