阅读 140

使用 C++ 找到 Nth_Non_Square_Number

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

第 N 个非平方数

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


1 is square of 14 is square of 29 is square of 316 is square of 425 is square of 5


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


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


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

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


Input : 2Output : 3Explanation : 2nd Non square number is 3 (after 2 which is first non square number)Input : 5Output : 7Explanation : 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 或任何其他语言。我们希望您觉得这篇文章有用且信息丰富,因为我们以最简单的方式描述了所有内容。


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐