给我们一个数字N。目标是找到有序的正数对,以使它们的立方之和为N。
遍历从1到N的所有数字,并检查它是否是一个理想的平方。如果floor(sqrt(i))== ceil(sqrt(i))。
那么数字是一个完美的平方。
N以下的完美正方形可以使用以下公式找到:floor(sqrt(N))。
让我们通过示例来理解。
输入值
N=20
输出结果
Count of square numbers: 4 Count of non-square numbers: 16
说明
Square numbers are 1, 4, 9 and 16. Rest all are non-squares and less than 20.
输入值
N=40
输出结果
Count of square numbers: 6 Count of non-square numbers: 34
说明
Square numbers are 1, 4, 9, 16, 25, 36. Rest all are non-squares and less than 40.
我们取整数N。
函数squareNums(int n)取n并返回n以下为完美正方形或非正方形的数字的计数。
将初始变量计数设为0。
使用从i = 1到i <= n的for循环遍历
如果floor(sqrt(i))== ceil(sqrt(i)),则该数字是一个理想的平方,因此增加计数。
在所有循环的末尾,计数将是一个完美平方的总数。
N平方将是非平方数
#include <bits/stdc++.h> #include <math.h> using namespace std; int squareNums(int n){ int count = 0; for (int i = 1; i <= n; i++){ if(floor(sqrt(i))==ceil(sqrt(i))) { count++; } } return count; } int main(){ int N = 40; int squares=squareNums(N); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
如果我们运行上面的代码,它将生成以下输出-
Count of squares numbers: 6 Count of non-squares numbers: 34
我们取整数N。
取变量平方= floor(sqrt(N))。
可变正方形将在N以下具有多个理想正方形。
N平方将是N以下的非平方数。
#include <bits/stdc++.h> #include <math.h> using namespace std; int main(){ int N = 40; int squares=floor(sqrt(N)); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Count of squares numbers: 6 Count of non-squares numbers: 34