递归求n! 哪个地方错了

问题描述

递归求n! 哪个地方错了

#include "StdAfx.h"
#include
int f(int )

{
int n;

printf("please input number n:n");
scanf("%d",&n);
if (n==1||n==0)
return 1;
else
return n*f(n-1);
}

解决方案

 #include "StdAfx.h"
#include <stdio.h>
int f(int n)
{
    if (n==1||n==0)
        return  1;
    else
    return n*f(n-1);
}
int main()
{
    int n;
    printf("please input  number n:n");
    scanf("%d",&n);
    int r = f(n);
        printf("%d", r);
        return 0;
}

解决方案二:

把printf拿出来,单独写,别放到递归里。
然后f函数改成如下
int f(int n)
{
scanf("%d",&n);
if (n==1||n==0)
return 1;
else
return n*f(n-1);
}

时间: 2024-11-16 11:41:56

递归求n! 哪个地方错了的相关文章

c语言-C语言用递归求圆周率的值,要求精确到小数点后3位,不得使用循环

问题描述 C语言用递归求圆周率的值,要求精确到小数点后3位,不得使用循环 C语言用递归求圆周率的值,要求精确到小数点后3位,不得使用循环 解决方案 http://jingyan.baidu.com/article/bea41d437c69b8b4c51be6e9.html 解决方案二: public class Test { public static void main(String[] args) { System.out.println("怎么插入代码块.."); } }

c++-log边缘检测代码及结果如下?是什么地方错了出现这种结果?

问题描述 log边缘检测代码及结果如下?是什么地方错了出现这种结果? int main() { // 读取原始图片 Mat image= cv::imread("lena.jpg",0); // 定义5X5LOG模板 Mat mask=(Mat_<char>(5,5)<<-2,-4,-4,-4,-2, -4, 0, 8, 0,-4, -4, 8,24, 8,-4, -4, 0, 8, 0,-4, -2,-4,-4,-4,-2 ); // LOG模板对原始图片卷积

c语言-C语言用递归求圆周率的值,怎么实现

问题描述 C语言用递归求圆周率的值,怎么实现 C语言用递归求圆周率的值,要求精确到小数点后3位,不得使用循环 解决方案 C语言实现求圆周率归并排序递归实现C语言

c语言递归求阶乘 ,不知道哪里不对

问题描述 c语言递归求阶乘 ,不知道哪里不对 递归求阶乘出问题了 #include long f(i) { long f=1; while(i>=1) f*=f(i-1); return f; } main() { int i=10; printf("factorial=%d",f(i)); } 帮忙看一下! 解决方案 = =你的i传进去 就是为了判断的吗? while(i>1) f=i* f(i-1) 解决方案二: #include long f(int i){ if(i

编译一直有错-vb.net用递归求阶乘 编译一直有问题

问题描述 vb.net用递归求阶乘 编译一直有问题 解决方案 你把代码贴上来看看啊. 解决方案二: 估计是你直接把代码写在命名空间里了.命名空间里只能装类,类里面才能装函数,函数里面才能装代码. 解决方案三: 你把代码贴上来我们才好看啊.

递归求字符串长度问题,求大神解答

问题描述 递归求字符串长度问题,求大神解答 int length(char * str) { if (*str == '') { return 0; } else { return (1+length(++str)); } } char str[10]="abcde"; 这个递归最后返回来的为什么会是5 不是应该返回0吗 求大神解惑 解决方案 strlen求字符串长度问题 解决方案二: 你还没有理解递归 最后一次是返回0 但是不是返回给main 而是返回给上一次递归 这样上一次递归就是

java数学归纳法非递归求斐波那契数列的方法_java

本文实例讲述了java数学归纳法非递归求斐波那契数列的方法.分享给大家供大家参考.具体如下: Integer能表示的最大值为 2147483647 大概是21.4亿,这里没有考虑溢出情况(当size为983时就会溢出)! import java.util.List; import java.util.ArrayList; /** * @author jxqlovejava * 斐波那契数列 */ public class Fibonacci { public static List<Intege

for循环绕晕了 求解答下面为什么错了

问题描述 for循环绕晕了 求解答下面为什么错了 for(MouldPlan mouldPlan:list){ Double totalCost=null; Integer id=mouldPlan.getPlanId(); List lineList=mouldPlanService.findMouldPlanLine(id); //查询出一个生产计划对应的模具 for(MouldPlanLine mouldPlanLine:lineList){ Double totalCost1 = nul

access visualc#-visualc# 和access 求帮忙看看哪里错了,然后怎么改才行啊,纯小白

问题描述 visualc# 和access 求帮忙看看哪里错了,然后怎么改才行啊,纯小白 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.Ole