突突突突突突突突
2021-07-27 17:43
采纳率: 100%
浏览 63
已结题

为什么if的判断语句要有或?return1的非正常中止是什么意思?

if的判断语句不是到n=2就结束了吗?
return 0不是表示正常中止吗 为什么返回值就变成0了。。
return 1 表示非正常中止,却能返回正确的值
img

  • 好问题 提建议
  • 收藏

6条回答 默认 最新

  • CSDN专家-link 2021-07-27 17:47
    已采纳

    因为递归算法中,需要对n,n-1和n-2三个数进行运算,这个应该是算斐波那契数的
    由于前三个数是1,1,2,所以n=1和2的结果都是1,可以直接return了
    这里n应该是从1开始的

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • CSDN专家-微编程 2021-07-27 17:45

    该程序原本要的就是1,如果想让程序非正常中止,可以return 任何一个数字
    这里return 1,其实就是想要当n=1或者n=2的时候取得的值为1,
    程序是通过递归求第n个斐波那契数是多少,n=3以后,后面的数等于前两个数之和,
    假如n>3,则第n个斐波那契数,等于前两个之和


    注意一下java编程书写规范,养成良好的编程习惯
    类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。
    如:public class MyFirstClass{}
    你采用了中文,如过代码导入其他编程工具可能就会乱码,因为编码格式不同意,但是英文不受影响

    评论
    解决 1 无用
    打赏 举报
  • Silence丶你的名字 2021-07-27 17:52

    If 语句两个都不满足,走else 然后递归,直到满足if语句,返回1,程序正常结束。如果报错的1程序结束,跟这个return 1 程序正常结束不一样

    评论
    解决 1 无用
    打赏 举报
  • 咕泡-天明 2021-07-27 17:48

    先不看你代码和问题。你的这个class名字中文以后一定的注意不要再出现

    评论
    解决 无用
    打赏 举报
  • 八云黧 2021-07-27 17:49

    你说的return的值0或1表示正不正常和这个没关系,这个函数return的就是斐波那契数,前面判断1、2是验证递归的边界条件,防止无限向下调用

    评论
    解决 无用
    打赏 举报
  • 夜长思 2021-07-27 17:50
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题