只有四则运算显然无法满足我们对于各种复杂的计算的要求,我们需要的计算方式有很多种,除了四则运算以外,还有乘方运算、开方运算、对数运算、阶乘运算等,是不是每一种运算都有对应的运算符呢?并不是的,在我们常见的运算中,C语言就只支持四则运算,但并不是只有四则运算这几种运算符,由于计算机中还有很多逻辑...
2!就是2*1 5!就是5*4*3*2*1 20!就是20*19*18*17*...*2*1 明白了吧?不过0!=1,这是规定!
这就是此编程里的算阶乘的语句,用了do while语句。
同学,20!就已经很大了,你定义sum为int无法保存结果,而且,阶乘不是那样子写的。include"stdio.h"double jiecheng(int n){ if(n==0||n==1)return 1;else return n*jiecheng(n-1);} main(){ int i=1;double sum=0;for(;i<=20;i++)sum+=jiecheng(i);printf("%lf",sum);} ...
先用for循环求阶乘;然后用取余数的计算判断一下最后一个数字是否为0,比如97010%10,那么就是余数就是0,只要%10就行。余数为0就把他输出,不是0的不用管。也要一个循环来遍历一下。很简单,自己写好了。另外任意整数是不现实的,必须定义一个最大值,要不计算机会溢出的,随便给个最大值。
//令i=1就行了 if(n!=1) { i=empty(n-1)*n; } return i; } void main() { int a,b; printf("请输入一个整数:"); scanf("%d",&a); if(a>1) { b=empty(a); } else { if(a==0||a==1) { b=1; } else printf("对不起输入不合法!\n"); } printf("%d的阶乘为:%d\n"...
include<stdio.h>int main() {double s = 0,a = 1;int i,n;scanf("%d",&n);for(i = 1;i <= n;i++) {a = a * i;s = s + a;}printf("%.0lf\n",s); // "%lf",不是"%f"return 0;}
int re(int n);void main(){ int n = 0;long c;scanf("%d",&n);c = re(n);printf("阶乘的最后值为:%ld",c);} int re(int n){ long r;if(n < 0){ printf("n<0,error");} else if(n == 0|| n == 1){ r = 1;} else { r = re(n-1)*n;} return r;} ...
这个数很大,long int都不够放,已经溢出了。改成double就OK了。include<stdio.h> void main(){ double term=1,sum=0;for(int i=1;i<=20;i++){ term=term*i;sum=sum+term;} printf("%.0f\n",sum);getchar();}
t=1,i=2,将t*i→t,此时t的值变了t=1*2=2,然后i=i+1=3,将t*i→t,此时t的值变了t=2*3=6,然后i=i+1=4,将t*i→t,此时t的值变了t=6*4=24,然后i=i+1=5将t*i→t,此时t的值变了t=24*5=120;整个 当下一步i=6的时候退出循环, 结束 最后得结果120 ...