目标C:使用带有双打的'%'运算符

时间:2012-04-20 15:16:06

标签: objective-c xcode math operator-keyword

今天我遇到了一个有趣的问题。作为我熟练掌握Objective-c的练习的一部分,当我坐在数学课上时,我会为每个问题编写程序,希望增加我的数学和编程能力。

然而,今天我遇到了一个问题。其中一个问题是“查找最大的素数10564245(< - 示例编号)可被”整除“

所以,我进去制作了这个节目。我做了要检查的值的循环,然后开始编码它检查提醒的部分,如果它是0,它会记录它,如果不是,它会跳过它。

但是,由于该数字太大而不能成为int,因此必须为double。当我尝试插入该号码时,当我想使用%运算符时,程序给了我错误。如果你有一个非常大的数字,有没有办法找到剩余的?

由于

错误:Invalid operands to binary expression

编辑:已解决!

我从每个答案中拿了一点。我们有fmod功能,但我最终使用的是long而不是int,我不知道为什么我没有想到原来的

2 个答案:

答案 0 :(得分:5)

使用fmod()。

#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[]) {
    double a = 77879878978942312315687897;
    double b = 10;
    printf("%.f",fmod(a, b));
}

答案 1 :(得分:1)

对于整数值,双精度值并不精确,因此可能不应该用于此类事情。相反,您可以使用long into甚至long long int来进行计算