[C语言]三种方法实现n的k次方(递归/调用math库函数/实现pow函数)[含递归图解说明]

news2024/11/17 7:48:56

目录

1.调用math库函数中的pow函数实现n的k次方

2.创造pow函数实现n的k次方

3.递归实现n的k次方(含图解)

1.调用math库函数中的pow函数实现n的k次方

        pow函数的功能:计算n的k次幂

        pow格式:pow(n,k)

#include <stdio.h>

#include <math.h>//头文件

int main()
{
	int n = 0;
	int k = 0;
	scanf("%d %d", &n, &k);

	int ret = pow(n, k);//运用pow函数

	printf("%d\n", ret);
	return 0;
}

2.创造pow函数实现n的k次方

注意要分三种情况,分别是:

                                        k = 0

                                        k < 0

                                        k > 0

        因为当k<0时,得到的是小数。所以注意要使用浮点数类型

float POW(int n,int k)
{
	float sum = n;
	if (k == 0)
	{
		return 1;
	}
	else if (k > 0)
	{
		for (int i = 1; i < k; i++)
		{
			sum *= n;
		}
		return sum;
	}
	else
	{
		k = -k;
		for (int i = 1; i < k; i++)
		{
			sum *= n;
		}
		return 1.0 / sum;
	}
	
}
int main()
{
	int n = 0;
	int k = 0;
	scanf("%d %d", &n, &k);

	float ret = POW(n, k);

	printf("%f \n", ret);
	return 0;
}

3.递归实现n的k次方(含图解)

        代码下方有图解

float POW(int n, int k)
{
	if (k == 0)
	{
		return 1;
	}
	else if (k > 0)
	{
		return n * POW(n, k - 1);
	}
	else//k<0的情况
	{
		return 1.0 / POW(n, -k);
	}
}
int main()
{
	int n = 0;
	int k = 0;
	scanf("%d %d", &n, &k);

	float ret = POW(n, k);

	printf("%f\n", ret);
	return 0;
}

        n = 2,k = 3的图解为:

         当k<0时和k>0的递归方法大差不差,只是多了一步先将k转换成正数再放到pow函数中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@NotEmpty、@NotBlank、@NotNull 区别和使用

这种注解通常使用场景在前端发送过来的数据&#xff0c;先进行校验处理&#xff0c;在进行逻辑判断的&#xff0c;所以在进行校验处理的时候&#xff0c;我们通常会使用这三种注解来进行判断传过来的值 1NotNull 适用于基本数据类型(Integer&#xff0c;Long&#xff0c;Doubl…

回收租赁商城系统功能拆解01讲-产品架构

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

【谷粒商城基础篇】基础环境搭建

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念&#xff08;第一、二章&#xff09;基础环境搭建&#xff08;第三章&#xff09;整合SpringCloud整合SpringCloud、SpringCloud alibaba&#xff08;第四、五章&#xff09;前端知…

关于yum源的总结

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录1 相关概念1.1 rpm与yum1.2 yum源与repo文件2 yum源的种类2.1 官方源2.…

【HTML】耗时一下午,整理出了一个精美的响应式登陆注册表单(附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

【OpenDDS开发指南V3.20】第八章:opendds_idl

opendds_idl是构建opendds和opendds应用程序过程中使用的代码生成器之一。 它可以用多种不同的方式定制如何从IDL文件生成源代码。 有关默认使用模式的概述,请参见第2.1.2节。 OpenDDS IDL编译器是使用位于$DDS_ROOT/bin/(PATH上)的OpenDDS_IDL可执行文件调用的。 它解析…

SpringBoot+RabbitMQ(官方案例)

在线文档项目结构 1.源码克隆&#xff1a;git clone https://github.com/spring-guides/gs-messaging-rabbitmq.git 2.包含两个项目initial和complete&#xff0c;initial可以根据文档练习完善&#xff0c;complete是完整项目 3.功能描述&#xff1a;构建应用程序&#xff0c;S…

inventor(2):设置单位,显示完整工具区/功能区,创建分割面

好久没用inventor了&#xff0c;记录一些重新学习的基本操作 文章目录1. inventor设置单位为cm2. inventor显示完整工具区/功能区3. inventor创建分割面1. inventor设置单位为cm inventor默认单位为in(英尺)&#xff0c;国内常用习惯为cm 一次点击&#xff1a;工具–选项–文档…

这篇文章会让你熟悉文件的各种操作,让你对文件的认识更加深入【c语言】

文章目录为什么使用文件什么是文件文件名文件的打开和关闭文件指针文件的顺序读写fgetcfputcfgetsfprintffscanffwritefread对比一组函数sprintfsscanf文件的随机读写fseekftellrewind文本文件和二进制文件文件读取结束的判定文件缓冲区为什么使用文件 把数据存放在磁盘文件、存…

2022 SuperMap开发者大会全议程公布,16个专场快来pick

2022年10月12日-14日&#xff0c;2022 SuperMap开发者大会(2022 SuperMap Developer Conference,简称“SDC 2022”)将在线举办。3天时间&#xff0c;16场专题论坛&#xff0c;聚焦GIS前沿技术和热点应用领域开发&#xff0c;分享50场开发实战报告&#xff0c;面向不同应用场景&…

基于小程序语法的跨端开发平台大盘点

2022年12月18日&#xff0c;微信推出了“Donut”开发平台&#xff0c;目前已经开始限时免费公测。这款跨端开发平台与Flutter、React Native、Taro等跨端框架最大的不同是&#xff1a;跨端的能力是基于小程序原生语法进行转译。这背后不得不让人联想到此次开发平台的推出&#…

P1046 [NOIP2005 普及组] 陶陶摘苹果————C++

文章目录题目[NOIP2005 普及组] 陶陶摘苹果题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示解题思路Code运行结果题目 [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树&#xff0c;每到秋天树上就会结出 101010 个苹果。苹果成熟的时候&…

实验十一、多级放大电路的参数设置

一、题目 利用 Multism 为图1所示电路选择电路参数&#xff0c;使之正常工作&#xff0c;并测试 QQQ 点、电压放大倍数和输入电阻。 图1多级放大电路图1\,多级放大电路图1多级放大电路 二、仿真电路 在Multism环境下搭建图1所示电路&#xff0c;选择电路参数&#xff0c;如图…

【谷粒商城基础篇】商品服务开发:基础概念、三级分类

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念&#xff08;第一、二章&#xff09;基础环境搭建&#xff08;第三章&#xff09;整合SpringCloud整合SpringCloud、SpringCloud alibaba&#xff08;第四、五章&#xff09;前端知…

再快一点?动态内容如何加速

未来已来&#xff0c;只是不均衡地分布在当下 大家好&#xff0c;我是菜农&#xff0c;欢迎来到我的频道。 近年来 Web 3 的概念在程序员的小圈子也几乎是人尽皆知了。功能再强&#xff0c;噱头再足&#xff0c;但是如果访问速度没有跟上&#xff0c;一起都是浮云。哪怕拿现在…

封装和解封装、跨层封装

封装和解封装 我们一般把数据从应用层开始到数据链路层的加工过程称为封装&#xff0c;反过程称为解封装 封装 — 将每一层最重要的数据添加到原始数据当中&#xff0c;来实现这一层的功能。 应用层 — 应用需要进行封装&#xff0c;但是&#xff0c;封装方式取决于不同的应用…

hiveSql 京东面试题-有效值问题

hiveSql 京东面试题-有效值问题需求准备数据分析实现最后需求 有入库成本表&#xff0c;一个商品每次入库就会产生一条数据&#xff0c;里面包含商品id&#xff0c;入库时间time&#xff0c;以及入库采购的成本。但由于某些某些原因&#xff0c;导致表中某些数据的成本是有丢失…

MySQL-慢sql优化思路

目录 1、开启Mysql慢查询 1.1、查看慢查询相关配置 1.2、查询慢查询sql耗时临界点 1.3、开启Mysql慢查询 2、explain查看SQL执行计划 2.1、Select_type 2.2、Type 2.3、Possible_keys 2.4、Key 2.5、Key_len 2.6、Rows 2.7、Extra 3、profile 分析执行耗时 3.1、…

gin web开发模板渲染

一、模板输出模板输出首先需要指定模板所放位置 r.LoadHTMLGlob("templates/**/*")参数中&#xff1a; **代表匹配任意名称的目录 *代表匹配任意名称的模板文件"templates/**/*" 代表可以匹配指定模板文件到 templates目录下的 hello/index.tmpl user/inde…

自然语言处理 第八章 机器翻译复习

机器翻译机器翻译概述典型神经机器翻译模型神经机器翻译 ( Neural Machine Translation, NMT神经机器翻译系统相关技术罕见词处理技术&#xff08;词表受限问题&#xff09;解决办法subword 方法beam searchcoverage penalty &#xff08;翻译覆盖率问题&#xff09;推敲网络&a…