小编Lov*_*ing的帖子

如果一个函数简单地调用自身,那么它是否是递归函数

我被要求编写一个递归代码来打印数组。一位朋友给我看了这段代码:

include <stdio.h>
int i=0;

void print(int A[], int n)
{
    if(i<n)
    {
        printf("%d ", A[i]);
        i++;
        print(A, n);
    }
}

int main()
{
    int A[3]={3, 5, 2};
    print(A, 3);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

从技术上讲,它是递归的,因为函数调用自身,但我认为微不足道!它不会将问题分解为更小的问题或类似的问题。所以,感觉就像是作弊。假装好像是递归。

这段代码中的函数可以被认为是递归的吗?这是使用递归的好方法吗?

这种形式怎么样:

#include <stdio.h>

void print(int A[], int n, int i)
{
    if(i<n)
    {
        printf("%d ", A[i]);
        print(A, n, i+1);
    }
}

int main()
{
    int A[3]={3, 5, 2}, i=0;
    print(A, 3, i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c recursion

2
推荐指数
1
解决办法
135
查看次数

为什么可以在类中覆盖__eq__和__ne__?

Python提供了重载==运算符AND !=运算符的功能.但为什么?是不是足够重载==!=自动相反(实际值)==

一个人的结果不应该自动暗示对方吗?

python class python-3.x

2
推荐指数
1
解决办法
100
查看次数

printf()的返回值会发生什么变化?

我最近了解到printf()返回它要调用的字符数.但我想知道我之前从未"使用过"这个返回值,例如:

int c = printf("Called func\n");
Run Code Online (Sandbox Code Playgroud)

要么

printf("%d", printf("Called func\n"));
Run Code Online (Sandbox Code Playgroud)

我只是写了一些语句,其中执行了printf的功能,如:

printf("Called func\n");
Run Code Online (Sandbox Code Playgroud)

那么printf()的返回值"发生了什么"?编译器如何知道它"ok"不使用返回的整数?

c

0
推荐指数
1
解决办法
155
查看次数

使用c ++的非常大的数字总和

我试图解决这个特殊问题:项目欧拉#16:

2 ^ 15 = 32768,其数字之和为3 + 2 + 7 + 6 + 8 = 26.
数字2 ^ 1000的数字之和是多少?

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
   int num;
   cin >> num;
   long double n = pow(2, num);
   cout << fixed << n << endl;
   int sum = 0;
   while(n != 0.0)
   {
      sum = sum + fmod(n, 10);
      n = floor(n/10);
   }
   cout << sum << endl;
}
Run Code Online (Sandbox Code Playgroud)

用户输入为1000时的输出为:

1181
Run Code Online (Sandbox Code Playgroud)

然而,互联网提到了正确的答案,1366而不是1181我得到的.

c++

-2
推荐指数
1
解决办法
1035
查看次数

标签 统计

c ×2

c++ ×1

class ×1

python ×1

python-3.x ×1

recursion ×1