C语言之基本算法29—整数任意次方的最后三位数(精度问题)

//精度问题!

/*

==================================================================

题目:

求整数的任意次方最后三位数!347的72次方最后三位数是241.

==================================================================

*/

#include<stdio.h>

#include<iomanip>

main()

{

int x,y,p,n;

printf("说明:底数为x,幂为y,请输入:\n");

printf("x=");

scanf("%d",&x);

printf("y=");

scanf("%d",&y);

p=1;

for(n=1;n<=y;n++)

{

p=p*x%1000; //关键是掌握这句话的意思,最后三位永远只与其乘数的最后三位相关,故只保留最后三位,以免溢出!

printf("%3d:  p=%3d \n",n,p);//若不需要输出过程,则不需要此行代码

}

printf("%d的%d次方的最后三位是:%3d\n",x,y,p);

}

/*

====================================================================

评:

还是随机数的应用,只不过这里是用来处理比较长的数,计算机会用这种办法

自己处理精度!就是每次只保留精度相关的部分。

=====================================================================

*/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 04:51:03

C语言之基本算法29—整数任意次方的最后三位数(精度问题)的相关文章

任意次方的最后三位数

#include <stdio.h> #include <math.h> int main(void) { int x, y, s, s1, s2, s3; printf("请输入两个整数(x^y):\n"); scanf("%d,%d",&x,&y); s=pow(x,y); s1=s%10; s2=((s-s%10)%100)/10; s3=((s-s%100)%1000)/100; printf("%d的%d次

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

函数功能: 使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数"-a"选项执行加法,"-s"选项执行减法,"-m"选项执行乘法,"-d"选项执行除法,后面两个参数为操作数. 思考: 三个参数中两个操作数不用处理,直接传入即可,而对于第一个操作数就需要处理了,以保证传入的参数是"'-a','-s','-m','-d'",以便于处理计算,第一步将操作符号转化为上述赋好,然后将参数以及操

「C语言」「算法」多种方法求一个数的位数及逆序数

1 #include <stdio.h> 2 3 4 int main() 5 { 6 int a,b[5]={0,0,0,0,0},i=0,len=0; 7 scanf("%d",&a); 8 while(i<5) 9 { 10 b[i]=a%10; 11 a=a/10; 12 len++; 13 if(a==0) 14 break; 15 i++; 16 } 17 printf("%d\n",len); 18 for(i=len-1;i

任意次方的最后三位

#include<stdio.h>main(){ int i,x,y,z=1; printf("请输入两个数,x和y(x^y):\n"); scanf("%d%d",&x,&y); for(i=1;i<=y;i++) z=z*x%1000; /*将x的余数求出,防止计算结果越界*/ if(z>=100) { printf("%d^%d的最后三位是:%d\n",x,y,z); } else { printf(

程序设计入门——C语言 第1周编程练习 1逆序的三位数(5分)

第1周编程练习 查看帮助 返回 第1周编程练习题,直到课程结束之前随时可以来做.在自己的IDE或编辑器中完成作业后,将源代码的全部内容拷贝.粘贴到题目的代码区,就可以提交,然后可以查看在线编译和运行的结果.不要在程序中输出题目要求输出的内容以外的东西. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 逆序的三位数(5分) 题目

C语言值基本算法43—总结

C程序的基本算法共涵盖42个例题,包含了枚举.排列.逻辑判断.迭代.递推.字符串操作.矩阵操作.格式输出等内容. 相关的实现方法有的显得很笨拙,但足够说明问题,而且每个程序都经过作者亲测,保证可以运行.之所以称之为基本算法,就是为了测试基础知识的掌握,都是从原始的角度进行处理,没有运用过于花哨的处理技巧,作者也是在学习中进步,也希望这些代码对于没有基础或者基础薄弱的朋友带来帮助. 至此,基本知识就掌握了,我们常常会听说C的强大,因为它是面向过程的,在数学领域具有极好的应用,有必要进行进一步的学习

任意次方后的最后三位数

编程求一个整数任意次方后的最后三位数. #include <stdio.h> main() { int i,x,y,z; z=1; printf("请输入x.y:"); scanf("%d%d",&x,&y); for(i=0;i<y;i++) { z=z*x%1000;//这里采用取余的方法求一个数任意次方后的后三位 } if(z>100) printf("最后三位是:%d\n",z); else pri

浙大版《C语言程序设计(第3版)》题目集 练习2-9 整数四则运算 (10 分)

练习2-9 整数四则运算 (10 分) 本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在4行中按照格式"A 运算符 B = 结果"顺序输出和.差.积.商. 输入样例: 3 2 输出样例: 3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 = 1 思路:格式化输出.代码如下: #include <stdio.h> int main() { int

1122: 零起点学算法29——等级分制度

1122: 零起点学算法29--等级分制度 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2657  Accepted: 1379[Submit][Status][Web Board] Description ACM集训队每年都要招新队员.他们很多从大一开始就练了.当然一开始都是从hello world练起的,后来很多人成了牛人. 你想参加吗?如果你感兴趣,赶快加入.可以写Email武科大ACM俱