需要明确一点就是:无论a的多少次幂,都是末尾的数先乘以a再考虑向前进位,因此本题直接考虑每次幂的末尾3位,将每次的末尾3位乘以a循环进行b次
#include<stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); long long int num = 1; for (int i = 1; i <= b; i++) { num *= a; num %= 1000; } printf("%03d", num); return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:974 |
C语言程序设计教程(第三版)课后习题8.4 (Java代码)浏览:733 |
哥德巴赫曾猜测 (C语言代码)浏览:1019 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1317 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:615 |
C语言训练-求函数值 (C语言代码)浏览:580 |
WU-图形输出 (C++代码)浏览:802 |
Wu-求圆的面积 (C++代码)浏览:1894 |
DNA (C语言描述,数据结构)浏览:861 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:350 |