http://hi.csdn.net/cjmiou
求13的13次方的最后三位数
*问题分析与算法设计
解本题最直接的方法是:将13累乘13次方截取最后三位即可。
但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目仅要求最后三位的值,完全没有必要求13的13次方的完整结果。
研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可以大大简化程序。
*程序说明与注释
#include<stdio.h>
void main()
{
int i,x,y,last=1; /*变量last保存求X的Y次方过程中的部分乘积的后三位*/
printf("Input X and Y(X**Y):");
scanf("%d**%d",&x,&y);
for(i=1;i<=y;i++) /*X自乘Y次*/
last=last*x%1000; /*将last乘X后对1000取模,即求积的后三位*/
printf("The last 3 digits of %d**%d is:%d\n",x,y,last%1000); /*打印结果*/
}
*运行结果
Input X and Y(X**Y):13**13
The last 3 digits of 13**13 is:253
Input X and Y(X**Y):13**20
The last 3 digits of 13**20 is:801转贴于:265考试网 http://www.265ks.com _计算机二级
分享到:
相关推荐
求13的13次方最后三位数,用c语言编写,运行成功,无错误。
描述中提到的算法是基于这样一个观察:计算一个数的N次方的最后三位数字,只需要关注该数及其指数的最后三位。这是因为任何两个整数相乘的结果的最后三位,只取决于这两个数各自最后三位的乘积,而不受它们高位的...
接下来定义一个名为`Npower`的类,用于求一个数的N次幂。 ```java public class Npower { // 定义两个私有整型变量表示基数和指数 private int x; private int n; // 默认构造方法 public Npower() { } // ...
在Delphi编程环境中,求一个数的y次方是一个常见的数学运算,这涉及到浮点数运算和数值计算库的使用。Delphi作为一个强大的Object Pascal开发工具,提供了多种方式来实现这个功能。本篇文章将深入探讨如何在Delphi中...
本题目来源于国信蓝点杯第二届决赛的最后一题,要求找出所有21位的水仙花数。题目难度较高,需要编写较复杂的程序来解决,但整体逻辑清晰,易于理解。 #### 2. 执行时间 根据描述,此题目的程序执行时间大约为20多...
第三位的1对应2的2次方,即4;最左边的1对应2的3次方,即8。将这些值相加,1 + 0 + 4 + 8 = 13,所以1101在十进制中等于13。 二进制数转换为八进制时,我们需要按照每三位一组进行分组。如果位数不足三位,可以在...
例如,153是一个三位的水仙花数,因为1^3 + 5^3 + 3^3 = 153。本文将详细介绍如何使用Python语言来实现打印任意位数的水仙花数。 首先,我们可以定义一个简单的Python函数来检测并打印出所有的三位水仙花数。这是...
《C语言实现21位花朵数的算法解析》 在编程竞赛中,有时会遇到一些特殊的题目,如“21位花朵数”。这个题目源于某次蓝点杯大赛,要求求解10个数字(0-9)的21次方的所有可能组合,并确保每个数字在组合中出现的次数...
求13的13次方的最后三位数是多少? **解题思路:** 对于大数的幂运算,我们通常不关心中间的过程,而只关心最终的结果。在这个问题中,我们需要求的是13的13次方的最后三位数,可以通过不断累乘并取模的方式得到。 ...
在完成除法后,余数就是被除数的最后几位。 七、C++的重载操作符 在C++中,我们可以为自定义类型(如大数类)重载常见的算术操作符,如+,-,*,/,%。这样可以使代码更具表达性,调用起来如同操作基本类型一样...
从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用 0 补足。 结果为 26.14Q。 六、总结 十进制转二进制的方法是通过除法算法实现的,二进制转十进制的...
这可能是一个提示,即题目要求找到所有类似的三位数,即可以表示为若干个2的幂次方之和的三位数。 2. **输入与输出**:“输入正整数N,输出计算结果S”:这是一个标准的输入输出格式,意味着程序需要接收一个正整数...
因此,我们可以通过循环乘以13并只保留最后三位,用 `%1000` 对结果取模,来逐步计算13的13次方的尾数。 3. **组合与排列的应用** 第三个问题是关于组合排列的问题。小明有5本书要借给3个朋友,每次只能借一本书,...
例如,13的13次方的最后三位数,可以通过不断将13自乘并取模1000来获取,这样可以避免计算完整的高次方结果。 3. **组合计数(排列问题)** - 当需要找出从一组元素中选择固定数量元素的不同方式时,可以使用排列...
这个过程涉及将二进制数按每三位一组进行划分。如果位数不足三位,可以在左边补充0。例如,二进制数110可以分为110(2),因为这正好是3的倍数,所以不需要补0。转换为八进制时,110对应于八进制的6,因此110(2)...
在讲解这份五年级数学上册三平均数9《平均数》拔高习题的内容前,我们需要了解什么是平均数以及它在数学中的重要性。平均数是指一组数据的总和除以数据的个数,是衡量数据集中趋势的一种重要指标。在小学数学中,...
在第二个例题中,我们需要计算 13 的 13 次方的最后三位数字。这是一个指数运算的问题。使用 C++ 语言,可以通过循环和模运算来解决这个问题。代码实现如下: ```c #include void main(){ int i, x, y, last = 1; /...
这是因为我们只关心结果的最后三位数,因此可以通过取模操作来简化问题。 4. **主循环**: - 对于每一个幂次方`p`从1到1000进行循环。 - 更新`Product *= k`,同时考虑溢出情况。 - 如果`flag`为真或`Product >=...
- **取模运算**:通过使用模运算(如%1000),可以轻易地获取任何数的最后三位数。 #### 实现代码: ```c #include int main() { int x = 13, y = 13, last = 1; for(int i = 1; i ; i++) { last = last * x % ...
例如,153是一个三位数,而1^3 + 5^3 + 3^3 = 153,因此153是水仙花数。 给定的代码片段提供了一种基础的方法来判断一个输入的整数是否为水仙花数。下面我们将对这段代码进行详细解析,并在此基础上进一步拓展关于...