| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 354 人关注过本帖
标题:大家看看什么问题
只看楼主 加入收藏
简单回忆
Rank: 2
来 自:郴州
等 级:论坛游民
帖 子:89
专家分:28
注 册:2011-3-19
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:6 
大家看看什么问题
若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如: 由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。求所有“四位双平方数”之和。    81977
#include<math.h>
main()
{long i,k,s=0;
int a,b,c,d;
for(i=1000;i<=9999;i++)
{ a=i/1000;
  b=i%1000/100;
  c=i%100/10;
  d=i%10;
  k=a+b+c+d;
  if ((int)sqrt(i)==sqrt(i)&&(int)sqrt(k)==sqrt(k))
 s=s+i;     }
printf("okThe num is:%ld\n",s);    }                                   我程序这样编完之后!!!!没有错   !!但是输出的结果不正确!!求大虾指教!!还有就是这行 if ((int)sqrt(i)==sqrt(i)&&(int)sqrt(k)==sqrt(k)) 小弟不是很懂      !!!求重点指教
搜索更多相关主题的帖子: 正整数 
2011-05-08 11:33
那年
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2011-5-3
收藏
得分:7 
   代码没错
 81977是所以这种书的和
这种数有
1512
1681
2025
2304
2601
………………
等等
if ((int)sqrt(i)==sqrt(i)&&(int)sqrt(k)==sqrt(k))
这条代码就是判断
利用开平方判断


              人生莫大的悲哀是不能坚持,今天计划明天,明天念着后天,这样总难成事。
2011-05-08 12:01
那年
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2011-5-3
收藏
得分:0 
#include<math.h>
#include"stdio.h"
main()
{long i,j,t,k,s=0;
int a,b,c,d;
for(i=1000;i<=9999;i++)
{ a=i/1000;
  b=i%1000/100;
  c=i%100/10;
  d=i%10;
  k=a+b+c+d;
  for(j=0;j<=100;j++)
  for(t=0;t<=36;t++)
  if (i==pow(j,2)&&k==pow(t,2))
  printf("okThe num is:%ld\n",i);
s=s+i;     }
printf("okThe num is:%ld\n",s);    }

我改了一种  这种也可以实现  就是时间复杂度要多了


              人生莫大的悲哀是不能坚持,今天计划明天,明天念着后天,这样总难成事。
2011-05-08 12:06
那年
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2011-5-3
收藏
得分:0 
这样  所有符合的数字都出来了


              人生莫大的悲哀是不能坚持,今天计划明天,明天念着后天,这样总难成事。
2011-05-08 12:08
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:7 
long i,a,b,c,d;
for(i=1000;i<9999;i++)
{if(!(sqrt(i)-(int)sqrt(i)))
{a=i%10;b=i/10%10;c=i/100%10;d=i/1000;
int s=a+b+c+d;
if(!(sqrt(s)-(int)sqrt(s)))
printf("%d,",i);}}
2011-05-08 12:11
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:7 
回复 楼主 简单回忆
if ((int)sqrt(i)==sqrt(i)&&(int)sqrt(k)==sqrt(k))
((int)sqrt(i)这个是将i的平方开出来后强制转换成整形的 后面的类似
2011-05-08 12:51
那年
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2011-5-3
收藏
得分:0 
等待结贴加分


              人生莫大的悲哀是不能坚持,今天计划明天,明天念着后天,这样总难成事。
2011-05-08 13:05
快速回复:大家看看什么问题
数据加载中...
 
   



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

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