递归求n^x的各位数字之和,其中n和x都非常大,使用C++实现
我们被赋予正整数变量“num”和“x”。任务是递归计算 num ^ x,然后将所得数字的数字相加,直到达到个位数为止,所得的个位数将作为输出。
让我们看看各种输入输出场景为此 -
输入 − int num = 2345, int x = 3
输出 − n 中数字的递归和^x,其中 n 和 x 非常大: 8
解释− 我们给出正整数值 num 和 x,值为 2345,幂为 3。首先,计算 2345 ^ 3 即 12,895,213,625。现在,我们将这些数字相加,即 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5,即 44。现在我们将添加 4 + 4,即 8。由于我们已经达到了个位数,因此,输出为 8。
输入− int num = 3, int x = 3
输出 − 数字的递归和在 n^x 中,其中 n 和 x 非常大: 9
解释− 我们给出正整数值 num 和 x,值为 3,幂为 3 . 首先计算3 ^ 3,即9。由于我们已经得到了个位数,因此输出为9,不需要进一步计算。
下面程序中使用的方法如下
输入整数变量 num 和 x,并将数据传递给函数 Recursive_Digit(num, x) 进行进一步处理。
将变量 'total' 声明为 long 并将其设置为调用函数total_digits(num),该函数将返回作为参数传递的数字的数字和。
将变量声明为 long 类型的 temp 并使用 % 6 的幂设置它
-
检查 IF Total = 3 OR Total = 6 AND power > 1,然后返回 9。
ELSE IF,power = 1,然后返回 Total。
li>ELSE IF, power = 0 然后返回 1。
ELSE IF, temp - 0 然后返回调用total_digits((long)pow(total , 6))
否则,返回total_digits((long)pow(total, temp))。
函数内部 long Total_digits(long num)
检查 IF num = 0,然后返回 0。检查 IF,num % 9 = 0然后返回 9。
否则,返回 num % 9
示例 H2>#include <bits/stdc++.h>
using namespace std;
long total_digits(long num){
if(num == 0){
return 0;
}
if(num % 9 == 0){
return 9;
}
else{
return num % 9;
}
}
long Recursive_Digit(long num, long power){
long total = total_digits(num);
long temp = power % 6;
if((total == 3 || total == 6) & power > 1){
return 9;
}
else if (power == 1){
return total;
}
else if (power == 0){
return 1;
}
else if (temp == 0){
return total_digits((long)pow(total, 6));
}
else{
return total_digits((long)pow(total, temp));
}
}
int main(){
int num = 2345;
int x = 98754;
cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x);
return 0;
}
登录后复制输出
#include <bits/stdc++.h> using namespace std; long total_digits(long num){ if(num == 0){ return 0; } if(num % 9 == 0){ return 9; } else{ return num % 9; } } long Recursive_Digit(long num, long power){ long total = total_digits(num); long temp = power % 6; if((total == 3 || total == 6) & power > 1){ return 9; } else if (power == 1){ return total; } else if (power == 0){ return 1; } else if (temp == 0){ return total_digits((long)pow(total, 6)); } else{ return total_digits((long)pow(total, temp)); } } int main(){ int num = 2345; int x = 98754; cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x); return 0; }
如果我们运行上面的代码,它将生成以下输出
Recursive sum of digit in n^x, where n and x are very large are: 1
以上是递归求n^x的各位数字之和,其中n和x都非常大,使用C++实现的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

C语言数据结构:树和图的数据表示与操作树是一个层次结构的数据结构由节点组成,每个节点包含一个数据元素和指向其子节点的指针二叉树是一种特殊类型的树,其中每个节点最多有两个子节点数据表示structTreeNode{intdata;structTreeNode*left;structTreeNode*right;};操作创建树遍历树(先序、中序、后序)搜索树插入节点删除节点图是一个集合的数据结构,其中的元素是顶点,它们通过边连接在一起边可以是带权或无权的数据表示邻

文章讨论了在C中有效使用RVALUE参考,以进行移动语义,完美的转发和资源管理,重点介绍最佳实践和性能改进。(159个字符)

文件操作难题的真相:文件打开失败:权限不足、路径错误、文件被占用。数据写入失败:缓冲区已满、文件不可写、磁盘空间不足。其他常见问题:文件遍历缓慢、文本文件编码不正确、二进制文件读取错误。

C 20范围通过表现力,合成性和效率增强数据操作。它们简化了复杂的转换并集成到现有代码库中,以提高性能和可维护性。

本文讨论了C中的动态调度,其性能成本和优化策略。它突出了动态调度会影响性能并将其与静态调度进行比较的场景,强调性能和之间的权衡

本文讨论了使用C中的移动语义来通过避免不必要的复制来提高性能。它涵盖了使用std :: Move的实施移动构造函数和任务运算符,并确定了关键方案和陷阱以有效

C语言函数是代码模块化和程序搭建的基础。它们由声明(函数头)和定义(函数体)组成。C语言默认使用值传递参数,但也可使用地址传递修改外部变量。函数可以有返回值或无返回值,返回值类型必须与声明一致。函数命名应清晰易懂,使用驼峰或下划线命名法。遵循单一职责原则,保持函数简洁性,以提高可维护性和可读性。
