您的位置:

c语言n的计算,c语言n%

本文目录一览:

C语言里怎么计算n! ??求大神解

如果数 比较小,可以直接 n*(n-1)*(n-2)*....*1 计算

#includestdio.h

int main()

{

int n,ans=1;

scanf("%d",n);//输入整数

while(n) ans *=n,n--;

printf("%d\n",ans);

return 0;

}

如果n比较大,需要大整数模拟计算

如何用C语言编写“计算n”的程序?

#includeiostream

using namespace std;

int main()

{

int n;

cout"请输入一个正整数:";

cinn;

while(n=0)

{

cout"输入无效,请重新输入:";

cinn;

}

int result=1;

for(int i=1;i=n;i++)

result *= i;

cout"n!="resultendl;

return 0;

}

关于n的计算,c语言程序

程序如下:

#include stdio.h

void main()

{

int n,t=0;

scanf("%d",n);

while(n=5)

{

n=n-5;

t=t+1;

}

while(n5n=3)

{

n=n-3;

t=t+1;

}

while(n3n=1)

{

n=n-1;

t=t+1;

}

printf("%d\n",t);

}

C语言问题编写一个函数计算n!

#include stdio.h

int fac(int n)

{

    if(n2)

        return 1;

    return n*fac(n-1);

}

int main()

{

    int n;

    scanf("%d",n);

    printf("%d\n",fac(n));

    return 0;

}

C语言中计算N!的方法

晕这个就是小学的长乘法,这个是用数组来存储的大数阶乘:

#include stdio.h

int main()

{

int n = 1;

scanf("%d",n);

int a[20000];

int carry;

int i;

int digit = 1; // digit记录的是当前的值的位数

a[0] = 1; // 初始化第1位为1

int temp;

for(i = 2; i = n; ++i) { // 从2开始乘

carry = 0;

// 这个循环分别用i乘以当前积的每一位

for(int j = 1; j = digit; ++j) {

temp = a[j-1] * i + carry; // 累加进位

a[j-1] = temp % 10; // 收缩

carry = temp / 10; // 记录进位

}

while(carry) { // carry不为0则表示进出了新的位数

a[++digit-1] = carry % 10; // 依次进位直到carry为0

carry /= 10;

}

}

// 是倒过来存的,所以输出也要倒过来

for(i = digit; i =1; --i)

printf("%d",a[i-1]);

printf("\n");

n++;

return 0;

}

看你的样子,你们来是应该不会叫你编高精度的吧,写个一般的可以了:

#include stdio.h

int main()

{

int fac, i;

int n;

scanf("%d", n); // 输入n

// 计算fac = 1*2*...*n

for(fac = 1, i = 2; i = n; ++i)

fac *= i;

printf("%d", fac);

return 0;

}