C语言 用函数调用方法求1!+2!+3!+…+n!的和
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
long long sum=0,num=1;
for(int i=1;i<=n;i++)
{
num*=i;
sum+=num;
}
printf("%lld\n",sum);
}
return 0;
}
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a);
输出结果为a=1234。
扩展资料:
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
long factorial(long n)
{
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n-1);
}
void PrintResult(int n, long result)
{
int i = 0;
if (n == 0)
printf("%d! = ", 0);
else if (n == 1)
printf("%d! = ", 1);
else if (n == 2)
printf("%d!+%d! = ", 1, 2);
else
printf("%d!+%d!+...+%d! = ", 1, 2, n);
printf("%lu\n", result);
}
int main(void)
{
int n = 0, i = 0;
long sum = 0;
printf("Please input a number: \n");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum += factorial(i);
}
PrintResult(n, sum);
return 0;
}
例子:
Please input a number:
20
1!+2!+...+20! = 268040729
Press any key to continue
long factor(int n)
{
long result=0;
long temp=1;
int i;
for(i=1;i<=n;i++)
{
temp*=i;
result+=temp;
}
return result;
}
int main()
{
int n;
printf("please input a number\n");
scanf("%d",&n);
long result=factor(n);
printf("the result is %d\n",result);
return 0;
}
其中long factor(int n)函数就是直接求1!+2!+3!+…+n!的和
#include<stdio.h>
long fun(int n)
{
int i;
long result=1;
for(i=1;i<=n;i++)
result*=i;
return result;
}
main()
{
int n,i;
long sum=0;
printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("%d\n",sum);
}
我刚学C语言 请问为什么#include 下面没有主函数 void main()
有呀,在下面啊,直接打main系统默认为int main
double f(double x,int n)
{
double sum=0;
double item=1;
int i;
for(i=1;i<=n;i++)
{
item*=x;
sum+=item;
}
return sum;
}
int main()
{
printf("%lf",f(2,3));
return 0;
}