当前位置: 首页 > news >正文

(多看) CExercise_05_1函数_1.2计算base的exponent次幂

题目:

键盘录入两个整数:底(base)和幂指数(exponent),计算base的exponent次幂,并打印输出对应的结果。(注意底和幂指数都可能是负数)

提示:求幂运算时,基础的思路就是先无脑把指数转换成正数,然后累乘,最后再根据指数是否是负数决定是否取倒数。


关键点

在这里插入图片描述


分析:

在这里插入图片描述


代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

/*
键盘录入两个整数:底(base)和幂指数(exponent),计算base的exponent次幂,
并打印输出对应的结果。(注意底和幂指数都可能是负数)

提示:求幂运算时,基础的思路就是先无脑把指数转换成正数,然后累乘,
      最后再根据指数是否是负数决定是否取倒数。
*/
//计算base的exponent次幂  - 循环累乘求解
double power(int base, int exponent) {
    double result = 1.0;//存储计算结果
    //若幂指数是0,则直接返回1
    if (base!=0 && exponent == 0) {
        return result;//任何非0数的0次幂等于1.
    }
    /*
    在计算幂运算的过程中
    幂指数有可能是负数,但为了简化计算可以先将指数转换成正数求解
    */

    int positive_exponent = exponent > 0 ? exponent : -exponent;  // 确保幂指数是一个正数

    // 累乘 base
    for (int i = 0; i < positive_exponent; i++) {
        result *= base;
    }
    // 如果原幂指数是一个负数,则取倒数
    if (exponent < 0) {
        result = 1.0 / result;
    }
    return result;
}

int main(void) {
    int base, exponent;
    printf("请输入底数和指数(用空格分隔):");
    scanf("%d %d", &base, &exponent);

    double result = power(base, exponent);
    //为了更好地显示负指数的小数结果,可以保留更多小数点后面的有效数字
    printf("%d的%d次幂是%.20lf\n",base,exponent,result);
    return 0;
}
	

在这里插入图片描述


解决方案总结:

:还是机智的. 幂运算若指数为负,底倒指数反.
不管怎么样,先让指数变成正的,直接计算, 若是负的记得整体取倒数.

http://www.dtcms.com/a/111498.html

相关文章:

  • 花卉识别分类系统,Python/resnet18/pytorch
  • MySQL简介
  • 大钲资本押注儒拉玛特全球业务,累计交付超2500条自动化生产线儒拉玛特有望重整雄风,我以为它破产倒闭了,担心很多非标兄弟们失业
  • SpringBoot配置文件多环境开发
  • 空中无人机等动态目标识别2025.4.4
  • Nacos注册中心AP模式核心源码分析(单机模式)
  • 前端知识点---本地存储(javascript)
  • IObit Uninstaller:深度清理残留文件
  • 黑马点评_知识点
  • #Liunx内存管理# 在32bit Linux内核中,用户空间和内核空间的比例通常是3:1,可以修改成2:2吗?
  • Flutter 手搓日期选择
  • 浅析联咏NT9856X各种LCD显示屏接口技术
  • 操作系统(三):FreeRTOS实时性机制分析
  • 音视频(四)android编译
  • 【2019】【论文笔记】高resolution无透镜的THz成像和测距——
  • antvX6节点全选后鼠标通过拖拉调整视图的展示位置
  • 基于springboot微信小程序的旅游攻略系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 码曰编程大模型-学编程的好工具
  • 【嵌入式学习4】模块、包、内置模块、异常
  • CherryStudio MCP实战(一)filesystem篇
  • Cmake:Win10 如何编译 midifile C++应用程序
  • leetcode 数组总结篇
  • 湖北师范大学计信学院研究生课程《工程伦理》12.6章节练习
  • 离线部署kubesphere(已有k8s和私有harbor的基础上)
  • 鸿蒙 harmonyOS 网络请求
  • AWS云安全基线:构建企业级安全防护体系的完整指南
  • Ubuntu 安装 JMeter:为你的服务器配置做好准备
  • C++ - 宏基础(简单常量替换宏、函数样式的宏、多行宏、预定义宏、字符串化宏、连接宏、可变参数日志宏)
  • 深入理解C++引用:从基础到现代编程实践
  • 【设计模式】代理模式