首页 > 其他分享 >信息学奥赛一本通题目解析:2086:【22CSPJ普及组】乘方(pow)

信息学奥赛一本通题目解析:2086:【22CSPJ普及组】乘方(pow)

时间:2024-03-13 21:00:54浏览次数:25  
标签:10 ab pow 30 2086 样例 22CSPJ 乘方 le

2086:【22CSPJ普及组】乘方(pow)

题目描述

小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a a a 和 b b b,求 a b a^b ab 的值是多少。

a b a^b ab 即 b b b 个 a a a 相乘的值,例如 2 3 2^3 23 即为 3 3 3 个 2 2 2 相乘,结果为 2 × 2 × 2 = 8 2 \times 2 \times 2 = 8 2×2×2=8。

“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。

小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 2 31 − 1 2^{31} - 1 231−1,因此只要计算结果超过这个数,她的程序就会出现错误。

由于小文刚刚学会编程,她担心使用 int 计算会出现问题。因此她希望你在 a b a^b ab 的值超过 10 9 {10}^9 109 时,输出一个 -1 进行警示,否则就输出正确的 a b a^b ab 的值。

然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。

输入格式

输入共一行,两个正整数 a , b a, b a,b。

输出格式

输出共一行,如果 a b a^b ab 的值不超过 10 9 {10}^9 109,则输出 a b a^b ab 的值,否则输出 -1

样例 #1

样例输入 #1

10 9

样例输出 #1

1000000000

样例 #2

样例输入 #2

23333 66666

样例输出 #2

-1

对于 10 % 10 \% 10% 的数据,保证 b = 1 b = 1 b=1。
对于 30 % 30 \% 30% 的数据,保证 b ≤ 2 b \le 2 b≤2。
对于 60 % 60 \% 60% 的数据,保证 b ≤ 30 b \le 30 b≤30, a b ≤ 10 18 a^b \le {10}^{18} ab≤1018。
对于 100 % 100 \% 100% 的数据,保证 1 ≤ a , b ≤ 10 9 1 \le a, b \le {10}^9 1≤a,b≤109。

解题思路:主要是解决一个计算乘方的问题,具体是计算 a b a^b ab 的值,并在计算结果超过 1 0 9 10^9 109 时返回 -1。考察处理大数乘方和避免整数溢出的能力。

解题思路的关键点:
1.类型选择:使用 long long 类型来存储计算结果,以避免在乘方计算过程中发生溢出。
2.循环乘法:通过循环实现乘方计算,每一次循环相当于乘以底数 a 一次。
3.及时终止:在结果超过 1 0 9 10^9 109 时及时终止计算,并设置结果为 -1,以满足题目要求。
4.效率考虑:直观且易于实现,时间复杂度是 O(b)。

#include<bits/stdc++.h> //万能头文件
using namespace std;
typedef long long LL;
int main()
{
    int a,b;
    cin>>a>>b;
    LL res=1; //定义答案数组
    while(a>1&&b--)
    {
        res*=a;
        //超过1e9则跳出
        if(res>1e9)
        {
            res=-1;
            break;
        }
    }
    
    cout<<res;
    return 0;
}

标签:10,ab,pow,30,2086,样例,22CSPJ,乘方,le
From: https://blog.csdn.net/lan_in/article/details/136687166

相关文章

  • 书籍推荐|低功耗设计必备手册!Low Power Methodology Manual For System-on-Chip Desig
    《LowPowerMethodologyManualForSystem-on-ChipDesign》是ic设计领域中关于低功耗设计的著名书籍,该书是由Synopsys和ARM中的专业人员联合编写,新思科技(Synopsys)是世界3大EDA巨头之一,是全球领先的芯片设计、验证和软件安全与质量解决方案提供商,ARM也是全球知名的cpu设计公司......
  • librosa与torch/torchaudio的stft、spectrogram、mel、power-to-db的对应关系
    注意,以下代码仍受到数值精度(numericalaccuracy)的影响。importsoundfileassfimportnumpyasnpimporttorchaudioimporttorchimportlibrosaif__name__=='__main__':np_data,sr=sf.read('./test.wav')ts_data=torch.from_numpy(np_data).float()......
  • PowerShell 命令来获取已启用的功能列表
     PowerShell命令来获取已启用的功能列表:powershellCopyCodeGet-WindowsOptionalFeature-Online|Where-Object{$_.State-eq"Enabled"}请在PowerShell窗口中运行该命令,它应该能够列出已启用的Windows功能 命令来获取Windows功能的详细信息,包括其状态:shel......
  • 【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以
    问题描述PowerBI获取SharePointList列表作为数据源。但是在数据源中,有Table属性值,有List属性值。如果直接展开,则会形成“笛卡尔”集的效果,变成N多行数据。效果图如下:但是,我们最终所需要的效果是:保留整体表格的行数不变,把Table中所需要的字段,List中的值使用“逗号”分隔,展示......
  • PowerShell 定时备份MySQL数据
    #========================================================#Function:备份MySQL数据库#ReleaseVersion:v0.0.3#ReleaseDate:2020年8月17日#Author:panda666#Website:www.panda666.com#=====================================......
  • PowerShell 使用指南
    PowerShell使用指南Started:2024.03.1209:00:00Update:2024-03-1209:36:270.Purpose在Win11中,默认的终端已经是PowerShell,包括VSCode里的默认终端,这一方面改进了cmd.exe表达力不足的问题,另一方面要求程序员们要学习一点PowerShell语法,之前的bat语法虽......
  • CMD和power shell命令
    CMD命令:calc寄存器devmgmt.msc设备管理器dvdplayDVD播放器explorer打开资源管理器notepad打开记事本magnify放大镜实用程序mspaint画板mstsc远程桌面连接narrator屏幕“讲述人”osk打开屏幕键盘regedit.exe注册表write写字板control控制面板desk.cpl......
  • PowerDesigner操作要点
    一、PowerDesigner解决name和code同步问题工具-常规选项-General Options-Dialog-NametoCodemirroring√去掉  二、PowerDesigner用反向工程导入sql生成新的数据模型1、文件-反向工程-Database 2、点击确定下一步 3、选择对应的SQL点击确定 4、结果如图所......
  • powerpoint:缩放定位动画
    一,幻灯片缩放定位插入->缩放定位->幻灯片缩放定位:在弹出窗口中,选中目标幻灯片,然后点插入按钮:插入成功:放映时退出:按键盘上的向上箭头或点击幻灯片底部的向上箭头,即可回到原幻灯片页面,如按空格或向右键箭头,则会按目标幻灯片所在位置向后播放:说明:刘宏缔的架构森林......
  • powerpoint: 放大缩小动画
    一,设置放大动画1,选中图片->工具栏动画标签栏下,选中放大/缩小:属性值:设置为400%选中平滑开始、平滑结束触发器:设置为单击:2,使图片放大后位置在屏幕中间选择图片,选择路径动画->直线:把动画的目标位置:红色的圆点,拖动到页面的中间:选中位置动画,计时的开始:设置为:......