键盘输入一个正整型N(5≤N≤15),先求1到N中奇数的阶乘值,然后按下式求S的值 - 爱问答

(爱问答)

键盘输入一个正整型N(5≤N≤15),先求1到N中奇数的阶乘值,然后按下式求S的值

键盘输入一个正整型N(5≤N≤15),先求1到N中奇数的阶乘值,然后按下式求S的值. 

如:输入N=5,则求S=1!-3!+5!;如:输入N=14,则求S=1!-3!+5!-7!+9!-11!+13!。

用c++解可以吗?

Pascal附上

program steps;var i,n:integer;s:int64;function step(a:integer):int64;var i:integer;beginstep:=1;for i:=1 to a do step:=step*i;end;function power(a,b:integer):longint;var i:integer;beginpower:=1;for i:=1 to b do power:=power*a;end;beginreadln(n);if (n<5) or (n>15) then halt;s:=0;for i:=1 to (n+1) div 2 dos:=s+power(-1,i+1)*step(2*i-1);write(s);readln;end.

采用循环累加求值就可以了(减一个数等于加它的负数):

#include <iostream>

int main()
{
long long num, sum = 0;
bool sub = true;
std::cin >> num;
for (int i = 1; i <= num; i += 2)
{
 long long n = 1;
 for (int j = 1; j <= i; n *= j++);
 sum += (sub = !sub) ? -n : n;
}
return (std::cout << sum), 0;
}


这种况可以使用直接的写法

下一篇:电脑自动关机

上一篇:华硕P8H61-MLX3PLUSR2.0可以BIOS吗?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?