栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

i<sqrt(N)+1和i<=sqrt(N)不能相互替换?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

i<sqrt(N)+1和i<=sqrt(N)不能相互替换?

在我们平常的认知中,初学者一般都会认为在for循环中,i

#include
#include
using namespace std;
int main()
{
    int N,count=0,num=0;
    cin>>N;
    for(int i=0;i<=sqrt(N);i++)
    {
    	count+=i;
	}
	for(int i=0;i 

我们先对N赋值一个10:

结果显示如此小的数它们就不相等了,我们继续分别把i值和开方值打印出来看一下

代码段:

#include
#include
using namespace std;
int main()
{
    int N,count=0,num=0;
    cin>>N;
    for(int i=0;i<=sqrt(N);i++)
    {
    	cout<<"i="< 

结果段:

 发现一个 一个执行到了i=3,一个执行到了i=4;上部分:3<=3.16228而下部分:4<3.16228+1;

说明sqrt函数返回的是double类型,就会导致题中不能替换的结果。

sqrt源码函数:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号