繁体   English   中英

在C ++中的while循环中使用pow()函数

Using the pow() function inside while loop in C++ [duplicate]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

这个问题已经在这里有了答案:

注意:该程序与数学中的小组理论有关,但我需要该程序的帮助。 很抱歉,如果它是非主题。

因此,任务是编写一个程序,该程序将查找用户输入n的U(n)元素的顺序。

U(n)={0<a<n: gcd(n,a)=1}的元素a U(n)={0<a<n: gcd(n,a)=1}

U(n)的元素a的顺序是最小正整数z ,使得(a^z)mod n=1

这就是while循环内的pow()函数进入的地方。

我的代码如下:

#include<iostream>
#include<cmath>
using namespace std;

int gcd(int a, int b) //For finding the gcd to display the elements of U(n)
{
    int rem=1,c;
    while(rem!=0)
    {
        rem=a%b;
        a=b;
        b=rem;
    }
    return a;
}

int U(int c)    
{
    int el;
    cout<<"U("<<c<<") = {1";
    for(int i=2;i<=c;i++)    //This is for listing the elements of U(n)
    {
        if(gcd(c,i)==1)
        {
            cout<<","<<i;
        }
    }
    cout<<"}"<<endl;
    cout<<"Enter the element to check order: "<<endl; //The code for the order of element starts here
    cin>>el;
    int i=1;
    while(pow(el,i)%c!=1)   //This is the only part that is showing some error. I want to terminate the program as soon as it encounters the specific i such that (el^i)%c=1
    {
        i++;
    }
    cout<<"|"<<el<<"| = "<<i<<endl;
    return 0;
}

int main()
{
    int num,el;
    cout<<"Enter a integer: "<<endl;
    cin>>num;
    num=abs(num);
    U(num);
    return 0;
}

这就是整个代码。

我得到的错误是:

||In function 'int U(int)':|
|32|error: invalid operands of types '__gnu_cxx::__promote_2<int, int, double, double>::__type {aka double}' and 'int' to binary 'operator%'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 4 second(s)) ===|

我不是在寻求该代码的替代版本或更简单的版本,而是要解释为何while循环内的pow()函数无法正常工作以及如何使其正确执行

非常感谢。

1 个回复

因为您不能将%运算符与double类型的值一起使用,这是pow()返回的结果。

1 如何在while循环中使用pow()?

我需要找到最大的整数 x (x &gt; 1) 以便 2^x &lt;= n (n 是从键盘输入的)。 我写了这个,但它永远循环 ...

2020-01-02 06:49:53 4 186   c++
2 C中的for循环中的Pow()函数

谁能告诉我为什么我不能这样做? 它无法编译,我知道我一定会出错。 我正在尝试打印2的幂,但是我不能这样做。 谁能帮我? 这是我写的代码。 我在Linux上使用gcc。 ...

2014-10-28 05:53:56 2 1061   c
3 为什么我不能在 `while` 循环中验证 `pow` 函数?

我已经尝试解决这个问题一个小时了,这很令人沮丧,我不明白为什么下一个循环不自我验证 完整的代码是 我在这里尝试做的是验证if(pow(3, 4)==81但它似乎不起作用。我将它从 100 设置为一个一个地向 0 的p 。当它达到 81 时,它只是过去了,就像它只是不验证if并且我的conto ...

4 在while循环C ++中,此pow()函数发生了什么?

我想找到第三个幂的所有数字的总和 例如14 = 1 ^ 3 + 4 ^ 3 = 65 我尝试在C ++中像下面这样编码,但是如果我使用pow()函数是错误的。 对于上面的代码。 如果输入153输出应为= 3 ^ 3 + 5 ^ 3 + 1 ^ 3 = 153但实际输出为15 ...

5 C 新手; 在 for 循环中使用 pow()

我正在尝试通过 edX/iTunesU 在哈佛 CS50 课程中使用 pset1,并且我正在尝试对Luhn 算法进行编程。 下面的代码非常不完整,但我想知道如何在 for 循环中使用pow()并在pow()使用i 。 据推测,还有另一种方法可以在不使用pow()情况下对 Luhn 的算法进行编程,但 ...

6 在while循环中使用regex函数

我有一个从特定网站获取特定链接的函数,它可以工作,但是当我尝试在while循环中使用此函数时,问题就开始了。 当我尝试这样做时,由于某种原因,链接长度开始堆积。 结果firstLink = getLinks(): ^ ---看到这种情况如何运作? 然后,当我将其放入while ...

7 在while循环中使用枚举函数

我有几个使用迭代来搜索正确答案的数学算法。 这是一个例子: 我想计算算法通过循环得到a和b的次数 。 但是这不是for函数而且它不是列表,所以如果我使用enumerate ,我无法清楚地指出我想要计算的对象。 有没有办法计算这些循环? 注意:我不是要尝试更改代码本身。 我正 ...

8 在while循环中使用scanf函数

我正在尝试为编程作业格式化以空格分隔的用户输入。 本质上,输入由任意数量的表达式组成 L integer integer integer integer和C integer integer integer 。 例如: L 1 1 5 7 C 4 5 3 。 到目前为止,我已经设法根据初始字符 ...

9 在while循环中使用常量(c)

我有以下C代码。 编译时,出现以下错误信息。 但是,如果在while循环中替换MAX_NUMBER,它将编译并平稳运行。 请告诉我如何在while循环中使用常量。 ...

2014-02-26 06:14:15 5 1002   c
10 在while循环中使用strcpy,C

我是编程新手,我正在开发一个从文件中获取数据的C应用程序。 我打开并分析这个外部文件的每一行。 在循环内部,我使用我之前创建的解析器函数,以获取所需的数据并解析它。 这工作正常,但现在我需要将每个已解析的行(每个消息)保存在另一个名为buffer的数组中。 每条消息限制为200个字符 ...

2016-02-22 11:27:50 2 1221   c
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM