C++程序:统计给定范围内平方根、立方根和两者兼具的数字


假设我们有一个数字 n。我们需要统计 1 到 n 之间的整数 x 的数量,这些整数 x 必须是某个正整数的平方或者立方(或者同时是平方和立方)。

问题类别

编程中的各种问题可以通过不同的技术来解决。为了解决一个问题,我们首先必须设计一个算法,而要做到这一点,我们必须详细研究特定问题。如果同一个问题反复出现,则可以使用递归方法;或者,我们也可以使用迭代结构。可以使用 if-else 和 switch case 等控制语句来控制程序中的逻辑流程。有效地使用变量和数据结构可以提供更简单的解决方案,以及更轻量级、更节省内存的程序。我们必须查看现有的编程技术,例如分治法、贪心算法、动态规划,并找出它们是否可以应用。这个问题可以通过一些基本的逻辑或暴力方法来解决。请参考以下内容,以便更好地理解该方法。

因此,如果我们问题的输入是 n = 25,那么输出将是 6

步骤

为了解决这个问题,我们将遵循以下步骤:

a := square root of n
b := cube root of n
c := cube root of a
return a + b - c

示例

让我们来看下面的实现,以便更好地理解:

#include <bits/stdc++.h>
using namespace std;
int solve(int n){
   int a = sqrt(n), b = cbrt(n), c = cbrt(a);
   return a + b - c;
}
int main(){
   int n = 25;
   cout << solve(n) << endl;
}

输入

25

输出

6

更新时间: 2022年4月8日

373 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.