首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有一个无效的浮点运算,但是在哪里?

有一个无效的浮点运算,但是在哪里?
EN

Stack Overflow用户
提问于 2020-10-28 16:31:09
回答 1查看 306关注 0票数 0

我现在正在写一段代码,在给定一个数字的情况下,打印所有符合4n+1格式的质数,这就是我目前所掌握的。他们的问题是,这给了我一个运行时错误207,我认为这意味着无效的浮点操作,但我看不出它是如何结束无效的浮点操作的。唯一的代码应该是处理"if num-(iter*iter)> then“行中的负数。

代码语言:javascript
复制
program TwoSquares;

var
    num, numSqrt, iter, bigSqr,smallSqr: integer;
    


begin
    num:=29;
    
    while num>4 do
    begin
        numSqrt:=trunc(sqrt(num));
        for iter:=2 to numSqrt do
        begin
            if num mod iter = 0 then
                num:=num - 1;
                continue;
        end;
        
        if (num-1) mod 4 = 0 then
        begin
            iter:=(num-1) div 4;
            while iter>0 do
            begin
                if num-(iter*iter)>0 then
                    bigSqr:=iter;
                    break;
                iter:=iter-1;
            end;
            smallSqr:=trunc(sqrt(num-(iter*iter)));
            writeln(num,' ', smallSqr,' ',bigSqr);
            num:=num - 1;
        end;
    end;
end.
EN

回答 1

Stack Overflow用户

发布于 2020-10-28 17:58:34

您的支票不能直接放在使用地点的前面。想一想;在这个数字后面的break;语句-(iter*iter) if-then检查while循环可以终止的唯一方式吗?

尝试单步执行你的程序,这也可以验证块结构是否如你所想的那样工作。这看起来不太一致,在某些地方使用begin..end,而在其他地方使用缩进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64569052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档