立方尾不变 蓝桥杯第6届第二题

立方尾不变

看了下郑未老师的思路和博客其他小伙伴的思路都跟我的不一样所以就发出来一下

  • 题目要求:

有些数字的立方的末尾正好是该数字本身。 比如:1,4,5,6,9,24,25,…

请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。

请提交该整数,不要填写任何多余的内容。

  • 思路:
    用辗转相除法从后面一个一个比较是否相同

  • 代码(C++)

#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;

bool check(ll n) {
	bool flag = true;
	ll pn = pow(n, 3);
	while (n) {
		int t1 = pn % 10;
		int t2 = n % 10;
		if (t1 != t2) {
		    flag = false;
		    break;
		}
		pn /= 10;
		n /= 10;
	}
	return flag;
}

int main() {
	ll i;
	int ans = 0;
	for (i = 1; i < 10000; i++) {
		if (check(i)) {
			ans++;
			cout << i << " ";
		}
	}
	cout << "\n答案是:";
	cout << ans << endl;
	return 0;
}
posted @ 2020-04-05 16:47  Lmrdadada  阅读(171)  评论(0)    收藏  举报