1 题目
2 思路
本题为模拟题,按自守数的格式模拟即可,其中两个关键点:
- N为1-10,所以遍历即可
- 取末尾子串,因为M不超过1000,所以通过整除即可取出;另一种思路,可以将数字先转为string,再通过substr取出
3 代码
#include<iostream>
using namespace std;
void check(int num){
int flag = false;
for(int i = 1; i < 10; i++){
int result = i * (num * num);
if(result % 10 == num || result % 100 == num || result % 1000 == num){
flag = true;
cout<< i << " " << result << endl;
break;
}
}
if(!flag){
cout<< "No" << endl;
}
}
int main(){
int m;
cin>> m;
for(int i = 0; i < m; i++){
int num;
cin>> num;
check(num);
}
system("pause");
return 0;
}