蓝桥杯试题集试题总汇(C++)
问题描述
输入正整数a, m,输出a^2%m,其中^表示乘方,即a^2表示a的平方,%表示取余。
输入格式
输入包含两个整数a, m,a不超过10000。
样例输入
5 6
样例输出
1
分析
方法一:根据题意,直接输出即可。
方法二:利用c语言math库中的指数函数pow(x,y),其中x和y都是双精度浮点(double)型,x是底数,y是指数(如果是小数即为开方),这里有一个细节问题,不能直接输出pow(a,2)%m,这样会报错,因为pow()函数返回值是double类型,不能直接进行除余操作,要先把pow(a,2)的结果强制转换成int类型,或赋值给int变量。
参考代码
方法一:
#include <iostream>
using namespace std;
int main()
{
int a,m;
cin>>a>>m;
cout<<a*a%m;
return 0;
}
方法二:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a,m;
cin>>a>>m;
int n=pow(a,2);
cout<<n%m;//或直接输出cout<<(int)pow(a,2)%m;
return 0;
}