2301_77895895 2023-11-14 18:49 采纳率: 66.7%
浏览 14

c语言求x的y次方,具体要求如下图所示

img


用c语言求解x的y次方,有没有人会的帮忙解答一下?希望有注释解释一下

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2023-12-01 11:54
    关注

    实现逻辑,遍历每个数组元素,从后往前开始遍历,遍历时,计算当前数组元素对应的次数,进行求幂运算。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    int powerMod(int x, int* y, int len, int mod) {
        int result = 1;
        // 从数组后面开始访问(低位到高位) 
        for (int i = len - 1; i >= 0; i--) {
            // 根据数组 y 的每个元素值进行幂运算
            for (int j = 0; j < y[i] * pow(10,len - i -1); j++) {
                result = (result * x) % mod;
            }
        }
        return result;
    }
    
    int main() {
        int x;
        char y_str[2000];
        int y[2000];
        scanf("x=%d,y=[%[^]]", &x, y_str);
        // 解析数组 y
        char* token = strtok(y_str, ",");
        int len = 0;
        while (token != NULL) {
             // 将字符串转换为整数,并存储在数组中
            y[len++] = atoi(token);
            token = strtok(NULL, ",");
        }
        int result = powerMod(x, y, len, 10007);
        printf("%d\n", result);
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月14日