题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(100000以内)这是我的c++程序?#include <iostream>
#include <complex>//#include <ios>using namespace std;
void main(void)
{
float i,x,y;//输入一个数
for(i=0;i<100000;i++)
{x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
cout<<"完全平方数是"<<i<<endl;
}
}
#include <complex>//#include <ios>using namespace std;
void main(void)
{
float i,x,y;//输入一个数
for(i=0;i<100000;i++)
{x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
cout<<"完全平方数是"<<i<<endl;
}
}
是不是能写成这样的?import java.io.*;
import java.math.*;
public class cl {
public static void main(String[] args)throws IOException{
float i,x = 0,y = 0;
for(i=0;i<100000;i++)
/*for(x=0;x<100000;x++)
for(y=0;y<100000;y++)*/
{
System.out.println(x=(float) Math.sqrt(i+100));
System.out.println(x=(float) Math.sqrt(i+268));
}
if(x*x==i+100&&y*y==i+268);
System.out.println("wangquanpoingfa"+i);
}
}真的不知道if//在这里怎么就出错了;对java的机制十分不了解?
其次,你的if 应该放在 for 循环里面,不然只是在检测10000是否符合
最后,这跟java机制没多大关系,算法而已.import java.io.*;
import java.math.*;
public class cl {
public static void main(String[] args)throws IOException{
int i,x = 0,y = 0;
for(i=0;i<100000;i++)
{
x= (int)Math.sqrt(i+100);
y= (int)Math.sqrt(i+268);
if (x*x == (i+100) && y*y == (i + 268))
{
System.out.println("x*x=" + x*x +"\t(i+100)="+(i+100));
System.out.println("y*y=" + y*y +"\t(i+268)="+(i+268));
System.out.println("i =" + i);
}
}
}
}
x*x=121 (i+100)=121
y*y=289 (i+268)=289
i =21
x*x=361 (i+100)=361
y*y=529 (i+268)=529
i =261
x*x=1681 (i+100)=1681
y*y=1849 (i+268)=1849
i =1581
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//m, n用于存储2个用于相加的数。
int m, n;
m = 100;
n = 168;
int step = n - m;
int a, b;
int x;
boolean flag = false;
if(step % 2 ==0)
x = 2;
else
x = 3;
for(;;x+=2){
if(step % x != 0)
if(step/x<3)
break;
else
continue;
else{
//求出等差数列的两端
a = step/x - x + 1;
b = step/x + x - 1;
//求出对应的数
a = (a-1)/2;
b = (b+1)/2;
//判断是否符合条件
if(b*b - a*a == step){
flag = true;
System.out.print("这个数为");
System.out.println(a*a - m);
break;
}
}
}
if(!flag)
System.out.println("该数不存在");
}}