當前位置:首頁 » 編程語言 » 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;
}