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多...
这个问题要求计算13的13次方的最后三位数。由于计算机的整数范围限制,直接计算13的13次方可能会超出范围。然而,我们注意到结果的最后三位只与乘数和被乘数的最后三位有关。因此,我们可以通过不断自乘并只保留...
第三位的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次方的所有可能组合,并确保每个数字在组合中出现的次数...
在完成除法后,余数就是被除数的最后几位。 七、C++的重载操作符 在C++中,我们可以为自定义类型(如大数类)重载常见的算术操作符,如+,-,*,/,%。这样可以使代码更具表达性,调用起来如同操作基本类型一样...
从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用 0 补足。 结果为 26.14Q。 六、总结 十进制转二进制的方法是通过除法算法实现的,二进制转十进制的...
- 这个问题要求求出一个数的高次方的最后三位数字。直接计算可能会导致溢出。聪明的做法是只关注数的最后三位,因为乘法的结果的最后三位只取决于参与乘法的数的最后三位。代码中使用了一个`for`循环,每次迭代都将...
该题目要求学生编写一个程序来找到13的13次方的最后三位数。这个题目考察了学生对C语言的数据类型和算法设计的理解。 第三个题目是关于借书方案知多少的。该题目要求学生编写一个程序来计算小明有五本新书,要借给A...
这可能是一个提示,即题目要求找到所有类似的三位数,即可以表示为若干个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; /...