| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:本人新手,大神来帮我瞧瞧哪里不对
只看楼主 加入收藏
红颜忆落
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-6-7
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
本人新手,大神来帮我瞧瞧哪里不对
2.打印所有10000以内的,其平方具有对称性质的数(也称回文数)

1*1=1
11*11=121
22*22=484

#include <stdio.h>
#include <math.h>
#define N 10000
int main()
{
    int b[100]={};
    int a[5]={};
    int i,index,index_max=0;
    for(i=0;i<=N;i++)
    {
        for(index=0;index<=sqrt(i);index++)
        {
            if(index*index==i)
            {
                b[index]=i;
                printf("%d ",b[index]);
            }
            index_max=index;
        }
    }
    printf("\n");
    printf("%d\n",index_max);
    for(index=0;index<index_max;index++)
    {
        if(b[index]<10)
        {
            printf("%d ",b[index]);
        }
        else if(b[index]>=10&&b[index]<100)
        {
            a[0]=b[index]%10;
            a[1]=b[index]-10*a[0];
            if(a[0]==a[1])
                printf("%d ",b[index]);
        }
        else if(b[index]>=100&&b[index]<1000)
        {
            a[0]=b[index]%100;
            a[1]=(b[index]-100*a[0])%10;
            a[2]=b[index]-100*a[0]-10*a[1];
            if(a[0]==a[2])
                printf("%d ",b[index]);
        }
        else if(b[index]<10000&&b[index]>=1000)
        {
            a[0]=b[index]%1000;
            a[1]=(b[index]-1000*a[0])%100;
            a[2]=(b[index]-1000*a[0]-100*a[1])%10;
            a[3]=b[index]-b[index]*1000-b[index]*100-b[index]*10;
            if(a[0]==a[3]&&a[1]==a[2])
                printf("%d ",b[index]);
        }
    }
    printf("\n");
}
输出的结果是0 1 4 9,为什么>10以上的结果输出不了?哪里错了?
搜索更多相关主题的帖子: include 
2013-06-09 08:51
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:4 
int b[100]={};
     int a[5]={};

Maybe
2013-06-10 17:11
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
收藏
得分:4 
#include <stdio.h>
#define N 10000
int main()
{
    int i,j,k,p[20],s,g=1,count=0;
for(i=1;i<=N;i++)
     {
           g=1,count=0;
           s=i*i;
          int fuck=s;
          while(s/10)//分解积
          {
              p[g]=s%10;
              s=s/10;
              g++;
            if(s<10)
            p[g]=s;
          }
          for(j=1,k=g;j<=k;j++,k--)//判断积是否符合条件
              {
              if(p[k]==p[j])
                 count=1;
             else
                {
                  count=0;
                  break;
                  }
             }
             if(count)
               printf("%dx%d=%d\n",i,i,fuck);
    }     
 return 0;   
}

我认为这样简便写,楼主的没看懂!!!

仗剑走天涯,网络论英雄。
2013-06-10 20:20
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:4 
你好,我写了一个,你看一下。
#include<stdio.h>
main()
{
    int i,j=0;
    int lep=0,cnt=0;
    long s=0;
    char str[11];
    for(i=1;i<=10000;i++)
    {
        s=i*i;
        while(s>0)
        {
            str[j]=s%10+'0';
            s/=10;
            j++;
        }
        str[j]='\0';
        for(lep=0;lep<j/2;lep++)
        {
            if(str[lep]==str[j-1-lep])
                cnt++;
        }
        if(cnt==j/2)
            printf("%d*%d=%ld\n",i,i,i*i);
        cnt=0;
        j=0;
        s=0;
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-06-10 20:23
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
收藏
得分:0 
还有就是如果i(i>0)是回文数,则i*i必为回文数!!!
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 嗜血老妖 于 2013-6-10 20:29 编辑 ]

仗剑走天涯,网络论英雄。
2013-06-10 20:26
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
收藏
得分:0 
回复 4楼 xp0213

仗剑走天涯,网络论英雄。
2013-06-10 20:28
快速回复:本人新手,大神来帮我瞧瞧哪里不对
数据加载中...
 
   



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

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