c语言程序设计
输入一个整数n求n以内的奇数乘积(1<n<20)
#include <stdio.h>
int main() {
int n;
int mu= 1;
printf("请输入一个整数(1<n<20): ");
scanf("%d", &n);
if (n <= 1 || n >= 20) {
printf("输入的整数不在有效范围内。\n");
return 0;
}
for (int i = 1; i <= n; i += 2) {
mu*= i;
}
printf("%d以内的奇数乘积为: %d\n", n, mu);
return 0;
}
#include <stdio.h>
int main() {
int n;
printf("请输入一个整数n:");
scanf("%d", &n);
int product = 1;
for (int i = 1; i <= n; i += 2) {
product *= i;
}
printf("%d以内的奇数乘积为:%d\n", n, product);
return 0;
}
#include <stdio.h>
int main()
{
int n,i=1,sum=1;
printf("请输入一个整数:\n");
scanf("%d", &n);
while (i <= n)
{
sum *= i;
i=i+2;
}
printf("%d以内的奇数乘积为:%d\n", n, sum );
return 0;
}
题目:求1到n的阶乘之和
输入:输入一个正整数n(1≤n≤20)
输出:输出一个阶乘和数
样例:
输入:10
输出:4037913
既然是求阶乘之和的,那么可以得到
核心突破点有:阶乘 求和
关于阶乘部分:
大家可以看一下个人所写的这篇文章:
再有就是求和部分:
借助循环进行实现,求和部分就是那前一项的阶乘加后一项阶乘,依次加直到循环结束。
关于这道题还需要注意的是数据范围,数据类型的范围如果过小会出现溢出的情况。
int,long(long int),long long(long long int)的数据范围如下:
int -2147483648~2147483647
long -2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
在了解了上述部分之后,就可以用代码实现了,如果你觉得自己可以实现了,那么可以先尝试以下,再看下面代码进行检查,
#include <stdio.h>
int main(){
int n,i;
long long fact=1,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
fact*=i;
sum+=fact;
}
printf("%lld\n",sum);
return 0;
}
关于1-20阶乘之和的问题先说的这里,希望这篇文章能对你有所帮助!
作者:code_流苏
喜欢的话,关注一下,点个赞吧!
欢迎评论交流,如有错误,还请指正!
我会!代码如下:
#include <stdio.h>
int main() {
int n;
long long result = 1; // 要用long long类型防止数据溢出
printf("请输入一个1到20之间的正整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (i % 2 == 1) { // n以内所有的奇数
result *= i;
}
}
printf("%d以内所有奇数的乘积为:%lld\n", n, result);
return 0;
}