求指点!!!
有一道题:一个整数,在10万以内,加100能开方,在加168还能开方,输出这个数!这个程序该怎么写啊,想了好久没头绪!!
本帖最后由 牡丹花下死做鬼 于 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;
}
不懂可以追问我还有一个星期放假 周一~周日可能无法在线 开方? 开平方? 开立方? 都开?
5不也能么。。。开平方。。开立方都可以。。。
这题描述都有问题。。我擦 向往青莲 发表于 2014-1-11 19:34 static/image/common/back.gif
开方? 开平方? 开立方? 都开?
5不也能么。。。开平方。。开立方都可以。。。
这题描述都有问题。。我 ...
开平方!!!!!! 本帖最后由 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(可以开方)多了就不打了........... machimilk 发表于 2014-1-11 22:03 static/image/common/back.gif
#include "stdafx.h"
#include
#include
我的到的结果是只有一个答案 156 牡丹花下死做鬼 发表于 2014-1-12 00:38 static/image/common/back.gif
不懂可以追问我还有一个星期放假 周一~周日可能无法在线
恩,看来我的先把语法学完才能解这道题谢啦 牡丹花下死做鬼 发表于 2014-1-12 00:46 static/image/common/back.gif
我的到的结果是只有一个答案 156
我再一个群里问过,有人给了个程序和他的答案一样,至于到底是多少还要研究,C语言太深了 machimilk 发表于 2014-1-11 22:03 static/image/common/back.gif
#include "stdafx.h"
#include
#include
非常感谢!! 牡丹花下死做鬼 发表于 2014-1-11 16:35 static/image/common/back.gif
不懂可以追问我还有一个星期放假 周一~周日可能无法在线
加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;
} 路过
页:
[1]