题目描述
1.输入整数a,b,输出a的b次方的个位数
2.给a,b增加一个取值范围例如(0,10000),输入整数a,b,输出a的b次方的个位数
源代码
下面是一个用C++编写的程序,根据输入的整数a和b,输出a的b次方的个位数:
#include <iostream>
using namespace std;
int powerMod(int a, int b) {
if (b == 0) {
return 1;
}
int result = 1;
while (b > 0) {
if (b % 2 == 1) {
result = (result * a) % 10; // 取个位数
}
a = (a * a) % 10; // 取个位数
b /= 2;
}
return result;
}
int main() {
int a, b;
cout << "请输入整数a:";
cin >> a;
cout << "请输入整数b:";
cin >> b;
int result = powerMod(a, b);
cout << "a的b次方的个位数为:" << result << endl;
return 0;
}
运行上述程序,按照提示依次输入整数a和b,程序将输出a的b次方的个位数。
请注意,上述程序使用快速幂算法来计算a的b次方,同时通过每次取个位数来避免整数溢出。
如果你想给整数a和b增加取值范围(0,10000),你可以在输入a和b的地方进行验证。下面是修改后的C++程序:
#include <iostream>
using namespace std;
int powerMod(int a, int b) {
if (b == 0) {
return 1;
}
int result = 1;
while (b > 0) {
if (b % 2 == 1) {
result = (result * a) % 10; // 取个位数
}
a = (a * a) % 10; // 取个位数
b /= 2;
}
return result;
}
int main() {
int a, b;
cout << "请输入整数a(范围:0-10000):";
cin >> a;
if (a < 0 || a > 10000) {
cout << "输入的整数a不在有效范围内" << endl;
return 0;
}
cout << "请输入整数b(范围:0-10000):";
cin >> b;
if (b < 0 || b > 10000) {
cout << "输入的整数b不在有效范围内" << endl;
return 0;
}
int result = powerMod(a, b);
cout << "a的b次方的个位数为:" << result << endl;
return 0;
}
在上述程序中,我们在输入a和b之后加入了范围验证的代码。首先,我们检查a是否在有效范围(0-10000)内,如果不在范围内,则输出错误信息并终止程序。然后,我们检查b是否在有效范围内,如果不在范围内,则同样输出错误信息并终止程序。
这样,当用户输入的a或b超出了有效范围时,程序会提示错误信息,并结束执行。否则,程序将继续计算a的b次方的个位数并输出结果。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END