大家好,又见面了,我是你们的朋友全栈君。
1到n阶乘算法的改进
之前用到过好几次了,但总是很长时间不用就会忘了,所以这次直接把它扔进来了。
之前总是喜欢用双层循环,其实一个单层循环足以,下面将用Python和C++两种语言进行展示
C++:
#include<iostream>
using namespace std;
int main()
{
int sum=0,tmp;
for(int i=1;i<=10;i++)
{
tmp=1;
for(int j=1;j<=i;j++)
tmp*=j;
sum+=tmp;
}
cout<<sum<<endl;
sum=0;
tmp=1;
for(int i=1;i<=10;i++)
{
tmp*=i;
sum+=tmp;
}
cout<<sum<<endl;
}
// 算法思想的改变 阶乘
运行结果展示,结果相同:
Python:
#单层
sum=0
num=1
for i in range(1,11):
num*=i
sum+=num
print("1到10的阶乘之和为:{}".format(sum))
#双层
sum=0
for i in range(1,11):
num=1
for j in range(1,i+1):
num*=j;
sum+=num;
print("1到10的阶乘之和为:{}".format(sum))
运行结果展示,结果相同:
Python的那个for循环还真是有点不太适应,阶乘这个算法改进算是非常基础,但是好久不用就会常规思维写双层循环。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164002.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...