01、求一个整数任意次方后的最后三位数

1、题目分析

求出最后结果,起码有两种思路。

第一种,X^Y次方后在除以1000取余。

第二种:每进行一次求方,则求一次余(1000),因为后三位计算就能计算出我们想要的结果。并且另一个好处在于数字不溢出。

第二种:

 1 #include <iostream>
 2 #include <climits>
 3 #include <iomanip>
 4 
 5 using namespace std;
 6 
 7 int main(void)
 8 {
 9     cout << "输入两个数 x,y,分别代表底数和幂.即X^Y" << endl;
10     int x = 0;
11     int y = 0;
12     int z = 1;
13 
14     cin >> x >> y;                  // 这里其实有溢出的风险
15     
16 
17     for (int i = 0; i < y; ++i)
18     {
19         z = z * (x%1000)  % 1000;     
20     }
21 
22     cout << setw(3) << setfill('0') << z << endl;
23 
24     return 0;
25 }

 

posted @ 2020-02-27 16:13  等闲  阅读(1394)  评论(0编辑  收藏  举报