其他分享
首页 > 其他分享> > 洛谷——P5739 【深基7.例7】计算阶乘

洛谷——P5739 【深基7.例7】计算阶乘

作者:互联网

题目描述
求 n!(n≤12),也就是 1×2×3…×n。

挑战:尝试不使用循环语句(for、while)完成这个任务。

输入格式

输出格式

输入输出样例
输入 #1
3
输出 #1
6

我的答案:
使用递归函数

#include<stdio.h>

int main()
{
	int n;
	scanf("%d",&n);
	long long fun_digui(int n);
	long long sum = fun_digui(n);
	printf("%lld", sum);
	return 0;
}
long long fun_digui(int n)
{
	if (n == 1)
	{
		return 1;
	}
	return	n * fun_digui(n - 1);
}

本没想到用long long 型,用计算器算了一下之后发现值过大,int型范围不够。
最开始的想法是直接用if语句,然后n * (n - 1),如果n == 0 就跳出判断。试了一下发现有三个测试点没有过,一想,我这个想法是while循环的想法,判断没问题但是这么写不行,它没有循环不能继续下去。

li_yizhixiaowukong 发布了26 篇原创文章 · 获赞 0 · 访问量 1172 私信 关注

标签:深基,洛谷,int,digui,long,fun,while,阶乘,return
来源: https://blog.csdn.net/li_yizhixiaowukong/article/details/104206013