当前位置:首页 » 编程语言 » c语言1到100之间所有乘积
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言1到100之间所有乘积

发布时间: 2023-02-26 10:08:14

c语言,计算1到100之间所有偶数的乘积并输出.

由于结果是很大很大的整数,所以必须用大数处理办法解决。先计算出结果大约是多少位十进制数,再据此动态申请数组空间。又由于9999999*100仍未超出int范围,所以用求出的位数除以7向上取整作为申请int数组的长度,将每个数组元素视作10000000进制单元操作,单元内部按十进制计数;操作完成后由高位到低位依次将各元素数据输出到屏幕连成一个大数。举例代码如下:

#include"stdio.h"
#include"stdlib.h"
#include"math.h"
intmain(intargc,char*argv[]){
doublex;
inti,k,n,*p;
for(x=0,i=2;i<101;x+=log10(i),i+=2);//计算最后结果的十进制位数
n=int(x/7)+!!(x-int(x));//n对x/7向上取整
if((p=(int*)malloc(sizeof(int)*(n=(int(x)+1)/7+1)))==NULL){//申请数组空间
printf("Applicationmemoryfailure... ");
return0;
}
for(k=0;k<n;p[k++]=0);//空间清0
for(p[--n]=2,i=4;i<101;i+=2){//完成2*4*6*...*100的计算
for(k=n;k>=0;p[k--]*=i);//每位乘以i存入本位
for(k=n;k>0;k--)//检查处理进位
if(p[k]>9999999)
p[k-1]+=p[k]/10000000,p[k]%=10000000;
}
printf(" 2*4*6*...*100=%d",p[0]);//输出最高7位数并删除前导0
for(i=1;i<=n;printf("%07d",p[i++]));//后续输出必须包括前导0
free(p);
printf(" ");
return0;
}

执行结果如下图:

❷ 如何用C语言实现1-100的加和乘

#include "stdio.h"
void main()
{
int i,sum=0;
long float multi=1.0;//所得的结果大于65536,所以要定义成浮点型,不懂请参考课本的数据类型
for(i=1;i<=100;i++)
{
sum+=i;//求和
multi*=i;//求积
}
printf("1-100之和为:%d\n1-100之积为:%lf",sum,multi);//注意输出格式
}

❸ 1到100奇数的乘积c语言

#include<stdio.h>

intmain(intargc,char*argv[])
{
inti=0;
unsignedlonglonga=1;

for(i=1;i<=100;i++)
{
if(0!=i%2)
{
a*=i;
}
}

printf("乘积为:%llu ",a);

return0;
}

❹ c语言计算1到100的乘积的编程

#include <stdio.h>
void main()
{long i,j,N;//N为阶乘数
result=1;
for(j=1;j<=N;j++)
{
result*=j;
}
printf("%ld",result);
getch();
}
我这个最简单

❺ C语言1乘到100怎么编写

double型浮点数可以胜任。设置1个int型变量i作为for循环控制变量,遍历1~100;设置1个初值为1.0的double型变量sum与i相乘保存部分积,当i遍历完成后sum便是所求结果。由于结果数字太大,得用科学计数法显示(显示的是近似值)。代码如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
inti;
doublesum;
for(sum=i=1;i<101;sum*=i++);
printf("1x2x3x...x100=%e ",sum);
return0;
}