鱼C论坛

 找回密码
 立即注册
查看: 2766|回复: 10

[技术交流] 求指点!!!

[复制链接]
发表于 2014-1-11 16:35:13 | 显示全部楼层 |阅读模式
2鱼币
有一道题:一个整数,在10万以内,加100能开方,在加168还能开方,输出这个数!
这个程序该怎么写啊,想了好久没头绪!!

最佳答案

查看完整内容

不懂可以追问我还有一个星期放假 周一~周日可能无法在线
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-11 16:35:14 | 显示全部楼层
本帖最后由 牡丹花下死做鬼 于 2014-1-12 00:46 编辑
#include<stdio.h>
#include<stdio.h>
#include<math.h>

int main ()
{
        long int i;//定义变量 100000超过65535
        int j;
        j = 11;
        for(i = 0;i<100000;i = j * j - 100)//让i每次变为j * j - 100 就保证+100可以开发
        {
                if((int)(sqrt(i + 168)) * (int)(sqrt(i + 168)) == (i + 168))//在判断下+168是否可开方即可
                {
                        printf("%ld\n",i);
                }
                j++;
        }
        return 0;
}

不懂可以追问我还有一个星期放假 周一~周日可能无法在线
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-11 19:34:23 | 显示全部楼层
开方? 开平方? 开立方? 都开?
5不也能么。。。开平方。。开立方都可以。。。
这题描述都有问题。。我擦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-11 20:47:15 | 显示全部楼层

开平方!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-11 22:03:19 | 显示全部楼层
本帖最后由 machimilk 于 2014-1-11 22:08 编辑

#include "stdafx.h"
#include<stdio.h>
#include <cmath>
#include <iostream>
int main()
{
  for (int i=1;i<100000;i++)//定义i从1到100000循环加1
  {
        float j=i+100;//先让i+100再开方看看能不能
        if (sqrt(j)- (int)sqrt(j)==0)//如果能就再加168试试
        {
                if (sqrt(j+168)- (int)sqrt(j+168)==0)//又加了168后还能开方就打印没+100和+168之前的那个数
                {
                        printf("%d\n",i);
                }
        }
  }
system("pause");
return 0;
}

结果算出21 261 1581  因为21+100=121(可以开方) 121+168=289(可以开方)多了就不打了...........

评分

参与人数 1鱼币 +2 收起 理由
神论教主 + 2 非常感谢你的指点,小小心意不成敬意!!!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-12 00:46:34 | 显示全部楼层
machimilk 发表于 2014-1-11 22:03
#include "stdafx.h"
#include
#include

我的到的结果是只有一个答案 156
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-12 01:08:54 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-1-12 00:38
不懂可以追问我还有一个星期放假 周一~周日可能无法在线

恩,看来我的先把语法学完才能解这道题谢啦  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-12 01:10:23 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-1-12 00:46
我的到的结果是只有一个答案 156

我再一个群里问过,有人给了个程序和他的答案一样,至于到底是多少还要研究,C语言太深了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-12 01:10:57 | 显示全部楼层
machimilk 发表于 2014-1-11 22:03
#include "stdafx.h"
#include
#include

非常感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-12 15:50:13 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-1-11 16:35
不懂可以追问我还有一个星期放假 周一~周日可能无法在线

加100能开方,在加168还能开方   这个应该是i+100能开方,i+268也能开方,你的代码……
我觉得应该是
#include<stdio.h>
#include<math.h>

int main ()
{
      long int i;//定义变量 100000超过65535
      int j;
      j = 11;
      for(i = 0;i<100000;i++)//让i每次变为j * j - 100 就保证+100可以开发
      {
            if((int)(sqrt(i + 100)) * (int)(sqrt(i + 100)) == (i + 100))//在判断下+168是否可开方即可
            {
                  if((int)(sqrt(i + 268)) * (int)(sqrt(i + 268)) == (i + 268))//在判断下+168是否可开方即可
                  {
                        printf("%d\n",i);
                  }
                  
            }
            
      }
      return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-18 10:58:59 | 显示全部楼层
路过                                      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表