首页 文章资讯内容详情

使用 C++ 找到 Nth_Non_Square_Number

2026-06-02 1 花语

2、3、5、7、8等任何数的非平方数我们都知道,非平方数有第N个,不可能知道每一个数。所以在本文中,我们将解释有关无平方数或非平方数的所有内容以及在C++中找到第N个非平方数的方法。

第N个非平方数

如果一个数是整数的平方,则称该数为完全平方数。完美平方数的一些例子是-

1 is square of 1 4 is square of 2 9 is square of 3 16 is square of 4 25 is square of 5

如果一个数不是任何整数的平方,则称该数为非平方数。例如,前15个非平方数是-

2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19

如何找到第N个非平方数?

所以这里是找到第N个非平方数的例子-

Input : 2 Output : 3 Explanation : 2nd Non square number is 3 (after 2 which is first non square number) Input : 5 Output : 7 Explanation : 7th Non square number is 7 ( after 2,3,5,6 which are first four non square

看了上面的例子,我们可以想出一个解决方案,为了找到第N个非平方数,我们需要对第n个数开始计数,并检查每个整数是否是一个完全平方数,并且不计算是一个完美的平方,即,如果数字是一个完美的平方,就进行计数。

创建一个C++程序来查找第N个非平方数

我们已经创建了一个完整的语法,用于在C++中查找第N个非平方数。

示例

#include <bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; //接受用户的输入。 int i = 2; //因为0和1是它们自己的平方,所以我们从2开始计算。 int cnt = 0; //声明计数器变量; while(cnt != n){//当out计数器的值与n相同时,循环将终止。 int a = sqrt(i); if(i != a*a) cnt++; if(cnt != n) i++; } cout << i << "\n"; //打印第n个非平方数。 }输出结果5

(当我们提供3作为输入时,我们得到5作为输出)

让我们对上面的代码做一个简单的解释。

步骤1-从用户那里获取输入并将计数设置为0。

cin >> n; //接受用户的输入。 int i = 2; //因为0和1是它们自己的平方,所以我们从2开始计算。 int cnt = 0; //声明计数器变量;

步骤2-计算非平方数并跳过平方数。

while(cnt != n) //当out计数器的值与n相同时,循环将终止。{ int a = sqrt(i); //使用sqrt()函数求平方根。 if(i != a*a) //检查数字是否为完全平方数。 cnt++; //如果发现非完美数字,则递增计数器。 if(cnt != n) i++; }

步骤3-打印第N个平方数。

cout << i << "\n"; //打印第n个非平方数。

结论

在本文中,我们解释了非平方数以及在C++中查找第N个非平方数的方法。除了C++,我们还可以在不同的编程语言中使用这个程序,例如Java、Python、C或任何其他语言。我们希望您觉得这篇文章有用且信息丰富,因为我们以最简单的方式描述了所有内容。