C语言第二十七弹--求n的k次方

简介: C语言第二十七弹--求n的k次方

求n的k次方

方法一、递归法

思路:使用递归首先要明确开始条件和结束条件,要每次递层递归要不断接近开始结束条件,这样子才能够不会导致栈溢出问题。那么开始条件其实有两个,一个是当k等于0时,无论n为多少都是1,二是当n、k都为1时返回1。求n的k实质是,n * n * n(执行k次),那么递归条件就可以写为n * 函数(n,k-1)。

代码如下

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int setpower(int n, int k)
{
  if (k == 0)
  {
    return 1;
  }
  else if (n == 1 && k == 1)
  {
    return 1;
  }
  else
  {
    return n * setpower(n,k - 1);
  }
}
int main()
{
  int n = 0;
  int k = 0;
  scanf("%d %d",&n,&k);
  int ret = setpower(n,k);
  printf("%d",ret);
  return 0;
}

方法二、非递归

思路:通过循环k次,每次乘积使用一个临时值接收最后返回临时值即可。

代码如下

int setpower(int n, int k)
{
  int tmp = 1;
  while (k--)
  {
    tmp *= n;
  }
  return tmp;
}
int main()
{
  int n = 0;
  int k = 0;
  scanf("%d %d",&n,&k);
  int ret = setpower(n,k);
  printf("%d",ret);
  return 0;
}
相关文章
|
前端开发 JavaScript 开发工具
React Native SDK for OSS
此文主要介绍 React Native SDK for OSS的方方面面,包括相关基本概念、项目背景、项目方案、环境搭建运行、使用姿势、注意事项等。文末的附件可运行Example Zip压缩包和针对新手的入门实用文章《从0开始搭建React Native for OSS项目》。
7539 0
|
JavaScript 前端开发 HTML5
分享9款漂亮的浪漫情侣网站模板
  当你需要在短时间内制作出一个网站的时候,模板就非常有用了。这篇文章收集了9款漂亮又浪漫的情侣网站模板分享给大家,您可以免费下载使用,希望这些网站模板能帮助到您。 Love and Romance 1 下载模板 Love and Romance 2 下载模板 Love and R...
5398 0
|
并行计算 算法 安全
未来科技:量子计算的崛起与挑战
【10月更文挑战第21天】 本文深入探讨了量子计算这一前沿科技领域的最新进展、核心原理以及面临的主要挑战。通过对比经典计算与量子计算的差异,揭示了量子计算在处理复杂问题时的独特优势。同时,文章还展望了量子计算在未来可能带来的颠覆性变革,并对其发展过程中需要克服的技术难题进行了分析。
387 13
|
机器学习/深度学习 人工智能 自然语言处理
谷歌AI Gemini 官方网站是什么?国内如何使用Gemini 1.5 pro
Gemini是Google开发的先进大型语言模型(LLM),旨在处理多种自然语言处理任务,如文本生成、翻译、摘要和对话生成。作为Google AI项目的一部分,Gemini结合了最新的研究成果和技术,显著提高了自然语言处理的准确性和效率。该模型经过大量文本数据的训练,使其能够理解和生成高质量的文本。
|
机器学习/深度学习 PyTorch 算法框架/工具
图像数据增强库综述:10个强大图像增强工具对比与分析
在深度学习和计算机视觉领域,数据增强是提升模型性能和泛化能力的关键技术。本文全面介绍了10个广泛使用的图像数据增强库,分析其特点和适用场景,帮助研究人员和开发者选择最适合需求的工具。这些库包括高性能的GPU加速解决方案(如Nvidia DALI)、灵活多功能的Albumentations和Imgaug,以及专注于特定框架的Kornia和Torchvision Transforms。通过详细比较各库的功能、特点和适用场景,本文为不同需求的用户提供丰富的选择,助力深度学习项目取得更好的效果。选择合适的数据增强库需考虑性能需求、任务类型、框架兼容性及易用性等因素。
1930 10
|
移动开发 C语言
C语言:&&和&、||和|有什么区别
在C语言中,&&和||是逻辑运算符,分别表示逻辑与(AND)和逻辑或(OR),它们用于连接两个布尔表达式,只有当两边都为真时&&返回真,||在至少一边为真时返回真;&和|是位运算符,对应地进行位级的与、或操作,它们对操作数的二进制位进行逐位处理。&&和||具有短路特性,而&和|没有。
13940 1
|
人工智能 vr&ar 图形学
开源单图生成3D模型TripoSR的应用场景
【2月更文挑战第24天】开源单图生成3D模型TripoSR的应用场景
483 1
开源单图生成3D模型TripoSR的应用场景
阿里云备案流程、操作步骤及所需时间图文详解
阿里云网站一共经过五步骤,先提交材料到阿里云初审,阿里云初审通过后提交到管局,用户进行工信部短信核验,最后等待管局审核即可。整个过程快的话2天即可搞定,慢的话需要20多天左右
2877 0
阿里云备案流程、操作步骤及所需时间图文详解
|
Java API 网络架构
Spring Cloud - Feign 调用过程分析
Spring Cloud - Feign 调用过程分析
1032 0