最近想报蓝桥杯,先从学长那儿看几道题吧,
~~(>_<)~~
立方尾不变
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,….
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。
思路分析:
这道题还是很简单的。
只要通过枚举1-10000然后计算出该数的立方。在对该数立方取该数的位数
if(该数立方%该数位数 == 该数)
{
则算符合特征的数
}
/*
代码如下
*/
#include <stdio.h>
#define SIZE 10000
int f(int n)
{
if (n >= 1 && n <10) return 10;
if (n >= 10 && n <=99) return 100;
if (n >= 100 && n <=999) return 1000;
if (n >= 1000 && n <=9999) return 10000;
}
int main()
{
long long sum;
long long i;
int wei = 0;
int count = 0;
for (i = 1; i < SIZE; i++)
{
wei = f(i); //返回该基数的位数
sum = (long long)(i*i*i) % wei;
if (sum == i)
{
//打印出各个符合条件的数
printf("%lld\n",sum);
count++;
}
}
printf("%d\n", count);
return 0;
}