趣味程序设计_高次方数

题目描述

求13的n次方(12<n≤130000000000)的最后三位数。例如:13的13次方的最后三位数是253,13的20次方的最后三位数是801。

输入

有多组测试数据,每组测试数据一行,即整数n。以文件结尾符结束。

输出

输出13的n次方的最后三位数。

样例输入

13
20

样例输出

253
801

提示

本题用64位数据类型也解决不了问题,因为13的n次方可能会非常大,所以要简化问题。不难发现,2个数乘积的后三位实际上只跟乘数的后三位有关,利用这一特点,可使问题大大简化。另外,n可达10的11次方,如果真的循环做n次乘法,肯定也会超时,所以,就要考虑减少乘法次数。考虑到连续乘的是"同一个数",后三位数值变化一般具有周期性。那如何检测周期长度呢?如果第1次遇到后三位数为XYZ,在不断累乘的过程中,后三位数再次是XYZ时,即可界定一个周期。

#include <stdio.h>
#include <string.h>
int a[101];
char n[15];

int main(int argc, char* argv[])
{    
	int aculation = 1;
	a[0] = 1;
	unsigned int i;
	for (i = 1; i < 101; i++) 
	{        
	aculation = aculation * 13 % 1000;
	        a[i] = aculation;
	}         
	while (scanf("%s", n) != EOF)
	{                 
		int temp;
		temp = (*n - '0') * 10 + *(n + 1) - '0';
		for (i = 2; i < strlen(n); i++)
		{            
	     		temp = (temp * 10 + *(n + i) - '0') % 100;
		}         
		printf("%03d\n", *(a + temp))
	}
	return 0;
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C/C++语言经典实用趣味程序设计编程百例精解(1) <br>(详解收藏在)http://www.klfd.net.cn/?p=384 <br>1.绘制余弦曲线 <br>2.绘制余弦曲线和直线 <br>3.绘制圆 <br>4.歌星大奖赛 <br>5.求最大 <br>6.次方的尾 <br>7.阶乘尾零的个 <br>8.借书方案知多少 <br>9.杨辉三角形 <br>10.制转换 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(2) <br>(详解收藏在)http://www.klfd.net.cn/?p=385 <br>11.打鱼还是晒网 <br>12.抓交通肇事犯 <br>13.该存多少钱 <br>14.怎样存钱利最大 <br>15.捕鱼和分鱼 <br>16.出售金鱼 <br>17.平分七筐鱼 <br>18.有限5位 <br>19.8除不尽的自然 <br>20.一个奇异的三位 <br><br> C/C++语言经典实用趣味程序设计编程百例精解(3) <br>(详解收藏在)http://www.klfd.net.cn/?p=386 <br>21.4位反序 <br>22.求车速 <br>23.由两个平方三位获得三个平方二位 <br>24.阿姆斯特朗 <br>25.完全 <br>26.亲密 <br>27.自守 <br>28.回文 <br>29.求具有abcd=(ab+cd)2性质的四位 <br>30.求素 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(4) <br>(详解收藏在)http://www.klfd.net.cn/?p=387 <br>31.歌德巴赫猜想 <br>32.可逆素 <br>33.回文素 <br>34.要发就发 <br>35.素幻方 <br>36.百钱百鸡问题 <br>37.爱因斯坦的学题 <br>38.换分币 <br>39.年龄几何 <br>40.三色球问题 <br><br> C/C++语言经典实用趣味程序设计编程百例精解(5) <br>(详解收藏在)http://www.klfd.net.cn/?p=388 <br>41.马克思手稿中的学题 <br>42.最大公约和最小公倍 <br>43.分比较 <br>44.分之和 <br>45.将真分分解为埃及分 <br>46.列出真分序列 <br>47.计算分的精确值 <br>48.新娘和新郞 <br>49.委派任务 <br>50.谁在说谎 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(6) <br>(详解收藏在)http://www.klfd.net.cn/?p=389 <br>51.谁是窃贼 <br>52.黑与白 <br>53.迷语博士的难题(1) <br>54.迷语博士的难题(2) <br>55.哪个大夫哪天值班 <br>56.区分旅客国籍 <br>57.谁家孩子跑最慢 <br>58.拉丁方阵 <br>59.填表格 <br>60.1~9分成1:2:3的三个3位 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(7) <br>(详解收藏在)http://www.klfd.net.cn/?p=390 <br>61.1~9组成三个3位的平方 <br>62.由8个整形成奇特的立方体 <br>63.减式还原 <br>64.乘式还原 <br>65.乘式还原(2) <br>66.除式还原(1) <br>67.除式还原(2) <br>68.九位累进可除 <br>69.魔术师的猜牌术(1) <br>70.魔术师的猜牌术(2) <br><br>C/C++语言经典实用趣味程序设计编程百例精解(8) <br>(详解收藏在)http://www.klfd.net.cn/?p=391 <br>71.约瑟夫问题 <br>72.邮票组合 <br>73.和能表示1~23的5个正整 <br>74.可称1~40磅的4块砝码 <br>75.10个小孩分糖果 <br>76.小明买书 <br>77.波松瓦酒的分酒趣题 <br>78.求π的近似值 <br>79.求π的近似值(2) <br>80.奇平方的一个有趣性质 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(9) <br>(详解收藏在)http://www.klfd.net.cn/?p=392 <br>81.角谷猜想 <br>82.四方定理 <br>83.卡布列克常 <br>84.尼科彻斯定理 <br>85.回文的形成 <br>86.自动发牌 <br>87.黑白子交换 <br>88.常胜将军 <br>89.抢30 <br>90.搬山游戏 <br><br>C/C++语言经典实用趣味程序设计编程百例精解(10) <br>(详解收藏在)http://www.klfd.net.cn/?p=393 <br>91.人机猜游戏 <br>92.人机猜游戏(2) <br>93.汉诺塔 <br>94.兎子产子 <br>95.将阿拉伯字转换为罗马字 <br>96.选美比赛 <br>97.满足特异条件的列 <br>98.八皇后问题 <br>99.超长正整的加法 <br>100.字移动 <br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值