一、算法分析:
1到100的偶数积,也就是2*4*6*...*100的结果。
可以采用两种方式:
1、从1循环到100,判断如果是偶数,则累乘。
2、从2开始循环,每次加2, 这样遍历所有偶数,乘积。
最终输出结果即可。
二、参考代码:
以遍历偶数累乘为例,代码如下:
#include
int main()
{
double r=1;
int i;
for(i= 2; i<= 100; i +=2)//遍历偶数
r*=i;//累乘。
printf("%.0lf\n", r);//输出结果。
return 0;
}
三、注意事项:
从2乘到100是一个很大的值,超出任何整型的范围,所以需要使用double来保存结果。
1、选择文件,新建。
2、左侧选择win32 console application,并在右侧选择输入工程的名称和地址,点击确定。
3、选择一个空工程,完成。
4、再次点击文件,新建。
5、选择c++source file 并输入文件名,点击确定。
6、输入如图所示的代码,注意代码和符号的输入必须在英文输入法的环境下进行。
7、点击右上角的编译运行按钮。
8、得到了我们想要的结果,答案是5050。
这个不好做啊,乘积太大了,要精确结果还是近似的,近似的话浮点数可以解决。
#include
main()
{ int i;
double sum=1;
for(i=2;i<=100;i+=2)
sum *= i;
printf("Sum is %e\n", sum); //注意这里使用%e作为输出。
}
整点int是肯定不行的,会溢出。
还有一个办法就是计算2^50和50!的乘积
循环
#include
main{
int i=1;
long j=1;
for(;i<=100;i++){
if(i%2==0)
j*=i;
}
printf("%ld",j);
}
#include "stdio.h"
void main()
{double i,sum;
sum=1;
for(i=2;i<=100;i+=2)
sum=sum*i;
printf("sum=%ld\n",sum);
}
应该不会错,我运行过了~