| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1431 人关注过本帖
标题:排它平方数 求帮忙
取消只看楼主 加入收藏
slf0909061
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-1-20
结帖率:100%
收藏
 问题点数:0 回复次数:0 
排它平方数 求帮忙

题目标题: 排它平方数

    小明正看着 203879 这个数字发呆。

    原来,203879 * 203879 = 41566646641

    这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

    具有这样特点的6位数还有一个,请你找出它!

    再归纳一下筛选要求:
    1. 6位正整数
    2. 每个数位上的数字不同
    3. 其平方数的每个数位不含原数字的任何组成数位

答案是一个6位的正整数。


#include<stdio.h>
main()
{
long song(long x);
long i,ji;
for(i=100000;i<=999999;i++)
{
    if(song(i))    continue;
    else
    {ji=i*i;
    if(song(ji)) printf("%ld  ",i);
    }


}
return 0;
}

long song(long x)
{ long static b[12],i,j;
if(x<=999999)
{
b[0]=x/100000;
b[1]=x/10000%10;
b[2]=x/1000%10;
b[3]=x/100%10;
b[4]=x/10%10;
b[5]=x%10;
b[12]=b[10]=b[9]=b[8]=b[7]=b[6]=b[5];
for(i=0;i<5;i++)
  for(j=i+1;j<=5;j++)
     { if(b[i]==b[j]) goto mm;    }
  return 0;
mm: return 1; }

if(1e6<=x&&x<=1e11){
long a[11];
a[0]=x/10000000000;
a[1]=x/1000000000%10;
a[2]=x/100000000%10;
a[3]=x/10000000%10;
a[4]=x/1000000%10;
a[5]=x/100000%10;
a[6]=x/10000%10;
a[7]=x/1000%10;
a[8]=x/100%10;
a[9]=x/10%10;
a[10]=x%10;
for(i=0;i<10;i++)
  for(j=i+1;j<=10;j++)
  { if(a[i]==a[j]||a[i]==b[i]) goto mm1;    }
  return 0;
mm1: return 1; }

if(1e11<=x&&x<1e12){
long a[12];
a[0]=x/100000000000;
a[1]=x/10000000000%10;
a[2]=x/1000000000%10;
a[3]=x/100000000%10;
a[4]=x/10000000%10;
a[5]=x/1000000%10;
a[6]=x/100000%10;
a[7]=x/10000%10;
a[8]=x/1000%10;
a[9]=x/100%10;
a[10]=x/10%10;
a[11]=x%10;
for(i=0;i<10;i++)
  for(j=i+1;j<=10;j++)
     { if(a[i]==a[j]||a[i]==b[i]) goto mm2;    }
  return 0;
mm2: return 1; }

}

用long会溢出,为什么用long long 型会错误呀!
搜索更多相关主题的帖子: 正整数 include 数字 
2013-06-01 10:32
快速回复:排它平方数 求帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012154 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved