【牛客刷题专栏】0x18:JZ16 数值的整数次方(C语言编程题)

前言

  • 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失
  • 个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

目录

  • 前言
  • 问题描述:
  • 举例:
  • 解法思路:
  • 代码结果:
  • 结束语


问题描述:

  • 实现函数 double Power(double base, int exponent),求base的exponent次方。

注意:
1.保证base和exponent不同时为0。
2.不得使用库函数,同时不需要考虑大数问题
3.有特殊判题,不用考虑小数点后面0的位数。

数据范围:∣base∣≤100 , ∣exponent∣≤100 ,保证最终结果一定满足∣val∣≤10^4

进阶:空间复杂度 O(1) ,时间复杂度O(n)


举例:

//示例1:
//输入:
2.00000,3
//返回值:
8.00000
//==========================
//示例2:
//输入:
2.10000,3
//返回值:
9.26100
//==========================
//示例3:
//输入:
2.00000,-2
//返回值:
0.25000
//说明:2的-2次方等于1/4=0.25 

解法思路:

  • 使用位运算的方式来进行,例如求 2 的 9次方,9的二进制 1001,也就是可以计算2* ((22)(22)) * ((22)(22))

  • 也就是循环 1001 这个二进制位,循环遍历exponent的每一位 循环的过程中,让base做乘方运算! 若当前最低位为1,则将res乘以当前base的值 最后若 exponent 为负数,则将结果转为倒数


代码结果:

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param base double浮点型 
 * @param exponent int整型 
 * @return double浮点型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
double Power(double base, int exponent ) {
    // write code here
    double ans=1;
    if(exponent>0){
        for(int i=0;i<exponent;i++)
            ans*=base;
    }
    else if(exponent<0){
        for(int i=0;i<(0-exponent);i++)
            ans*=base;
        ans=1/ans;
    }
    else if(exponent==0)
        ans=1;
    return ans;
}


结束语

  • 以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转),可以尝试注册使用。
  • 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安全防御 --- APT、密码学

APT 深度包检测技术&#xff1a;将应用层内容展开进行分析&#xff0c;根据不同的设定从而做出不同的安全产品。 深度流检测技术&#xff1a;与APS画像类似。会记录正常流量行为&#xff0c;也会将某些应用的行为画像描述出来。也可将加密流量进行判断&#xff0c;并执行相应措…

程序员必知必会7种UML图(类图、序列图、组件图、部署图、用例图、状态图和活动图)画法盘点

众所周知&#xff0c;软件开发是一个分阶段进行的过程。不同的开发阶段需要使用不同的模型图来描述业务场景和设计思路&#xff0c;在不同的阶段输出不同的设计文档也是必不可少的&#xff0c;例如&#xff0c;在需求分析阶段需要输出领域模型和业务模型&#xff0c;在架构阶段…

2023疫情当头,3个月转行软件测试拿下8k+offer,我心满意足了

从2020年的疫情开始&#xff0c;全世界好像按下了暂停键一般&#xff0c;大量新网民涌入互联网。我们的生活方式也随之改变&#xff0c;失业也如洪流般席卷整个世界&#xff0c;宅家的人数在变多&#xff0c;当然大多数人开始寻求新的工作方式&#xff0c;随之进军互联网的人开…

域名过户操作流程及常见问题

模板添加及模板过户操作流程&#xff1a; 一、添加模板操作流程&#xff1a; 1.在业务管理-域名管理-模板管理中找到“添加模板” 2.选择所有者类型&#xff08;个人或是企业/组织&#xff09;&#xff0c;填写新的域名所有者资料&#xff0c;填写无误后点击“确定”。 目前…

记录分享vscode里面非常好用的两个markdown插件

文章目录Markdown PDFMarkdown All in One效果图Markdown PDF 主要用于将markdown文件转为pdf文件 使用方法 安装此插件编辑区鼠标右键就会出来一个弹框,在弹框里面选择 Markdown All in One 我主要用它来生成文章的目录结构,然后转为pdf文件后,目录结构默认就是pdf文章目录,…

告别至暗时刻,高端与全系列手机市场前景可期

作者|落笔 近年来&#xff0c;智能手机用户换机周期持续拉长&#xff0c;市场出货量逐年走低&#xff0c;IDC数据显示&#xff0c;2022年全年中国智能手机市场出货量约2.86亿台&#xff0c;同比下降13.2%&#xff0c;创有史以来最大降幅&#xff0c;全球智能手机发展已进入成熟…

大厂研发成本大曝光,研发占大头

近日&#xff0c;腾讯发布《2022 年腾讯研发大数据报告》&#xff0c;披露了 2022 年腾讯在研发投入、研发效能、开源协同等方面的重要数据。 《报告》显示&#xff0c;2022 年腾讯内部研发人员占比达到 74%&#xff0c;这意味着&#xff0c;平均每四个腾讯员工中&#xff0c;…

linux 共享内存 shmget

专栏内容&#xff1a;linux下并发编程个人主页&#xff1a;我的主页座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物&#xff0e;目录 前言 概述 原理机制 系统命令 接口说明 代码演示 结尾 前言 本专栏主要分享linu…

【深度解刨C语言】内存管理(详)

文章目录前言一.动态内存1.动态内存的用处2.内存的布局简单证明内存布局栈向下生长的证明堆向上增长的证明3.malloc与free进一步理解总结前言 前提: 内存有基本的认识 内存函数基本的了解 如果你对内存与内存函数太不清楚可以看:动态内存管理 目标: 为什么要用动态内存&…

我体验了首个接入GPT-4的代码编辑器,太炸裂了

最近一款名为Cursor的代码编辑器已经传遍了圈内&#xff0c;受到众多编程爱好者的追捧。 它主打的亮点就是&#xff0c;通过 GPT-4 来辅助你编程&#xff0c;完成 AI 智能生成代码、修改 Bug、生成测试等操作。 确实很吸引人&#xff0c;而且貌似也能大大节省人为的重复工作&…

vue尚品汇商城项目-day04【29.加入购物车操作(难点)】

文章目录29.加入购物车操作&#xff08;难点&#xff09;29.1加入购物车按钮29.2addCartSuce29.3购物车29.3.1 向服务器发送ajax请求&#xff0c;获取购物车数据29.3.2UUID临时游客身份29.3.3动态展示购物车29.4修改购物车产品的数量&#xff08;需要发请求&#xff1a;参数理解…

203. 移除链表元素

1、题目 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a; 输入&…

File 类的用法和 InputStream, OutputStream,System 类的用法

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

Typescript学习笔记(一)

什么是TypeScript? TypeScript 是添加了类型系统的 JavaScript&#xff0c;适用于任何规模的项目。 TypeScript 是一门静态类型、弱类型的语言。 安装TypeScript npm install -g typescript编译 tsc hello.tsTypeScript 只会在编译时对类型进行静态检查&#xff0c;如果发…

iOS 内存管理机制与原理

内存分区 内存一般分为五大区&#xff1a;栈区、堆区、常量区、全局区、代码区。如图 1.栈区 是由编译器自动分配并释放的&#xff0c;主要用来存储局部变量、函数的参数等&#xff0c;是一块连续的内存区域&#xff0c;遵循先进后出&#xff08;FILO&#xff09;原则。一般在…

WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?

本文将介绍 Wasm&#xff0c;以及 Apache APISIX 如何实现 Wasm 功能。 作者朱欣欣&#xff0c;API7.ai 技术工程师 原文链接 什么是 Wasm Wasm 是 WebAssembly 的缩写。WebAssembly/Wasm 是一个基于堆栈的虚拟机设计的指令格式。 在 Wasm 未出现之前&#xff0c;浏览器中只能…

Hadoop(伪分布式)+Spark(local模式)搭建Hadoop和Spark组合环境

一、安装Hadoop环境使用Ubuntu 14.04 64位 作为系统环境&#xff08;Ubuntu 12.04&#xff0c;Ubuntu16.04 也行&#xff0c;32位、64位均可&#xff09;&#xff0c;请自行安装系统。Hadoop版本: Hadoop 2.7.4创建hadoop用户如果你安装 Ubuntu 的时候不是用的 "hadoop&qu…

研究的艺术 (The craft of research) 读书笔记

前言 如果你对这篇文章感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 对于研究者而言&#xff0c;写作是一件很重要的事&#xff0c;好的写作不仅能让更多人愿意读&#xff0c;获得更大影响力&…

Windows系统配置SSH服务

1.安装OpenSSH 打开【设置】-【应用】 选择【管理可选功能】 点击【添加可选功能】 选择【OpenSSH 服务端】&#xff0c;切记不是【OpenSSH 客户端】&#xff08;如果安装一个不行&#xff0c;就都安装&#xff0c;我都安装了可以用&#xff09;&#xff0c;然后点击下载即可 …

ERP系统如何让项目管理更轻松?

项目管理是许多企业的首要任务&#xff0c;通常有一个ERP系统来协助他们。然而&#xff0c;一些企业仍然没有意识到&#xff0c;ERP解决方案可以使他们的项目管理更容易。项目管理需要有一个目标&#xff0c;并在你朝着完成项目前进的过程中控制变量&#xff0c;而ERP系统指导你…