故事回顾:
雷劈数,印度某个数学家发现的,之所以叫雷劈数是因为在雷雨天气路边的里程桩号“3025”被雷从中间劈成2半而正好被这个科学家走狗屎运发现的,因为30+25=55,55×55=3025。
而腾讯的老马脑子里还是带点迷信,当初放号的时候像这类非常不吉利的数字都给注销了,万一哪天被雷劈了他肯定会死不瞑目的。干事业还是得图个吉利,而当初申请8位QQ那段时间腾讯正处于困难时期,听说老马差点50万把QQ卖了,所以对于这些不吉利的东西还是予以避讳。
但是老马的智商还是有限的,雷劈数不仅仅只有这一个,比如25502500,24502500,52881984,99980001都是雷劈数!只是60481729这个雷劈数非常出名所以老马予以没收了。。。。。。
一个找出雷劈数的程序将会在这里被呈现,这里只是绝对雷劈数(也就是劈开后两边数字字符数目完全相等,或者说原数的字符数目为偶数)
#include <stdio.h>
#include <stdlib.h>
#define N 10
void fun(n)
{
int array[N];
int k=0,a;
int j,nf=0,na=0;
int sum;
a=n;
while(a!=0)
{ array[k]=a%10;
a/=10;
k++;
}
array[k]='/0';
if(k%2==0){
for(j=k-1;j>=k/2;j--)
{
nf=nf*10+array[j];
}
for(j=k/2-1;j>=0;j--)
{
na=na*10+array[j];
}
sum=na+nf;
if(sum*sum==n)
printf("%-16d",n);
}
}
main()
{
unsigned int ss;
for(ss=1;ss<=2147483647;ss++)
fun(ss);
}
计算结果有
81 2025 3025 9801 494209 998001
24502500 25502500 52881984 60481729 99980001