此问题为当时我学习时的作业,所以仅仅将此实现,并没有进行代码优化
实现该题中使用过的Java的技能点有以下:
【1】For循环
【2】if(){}else{}语句
【3】方法体method
【4】数组Array
?此题代码为:
package Compare;
/**
* @Auther:Lzz
* @Date:2021/12/20 - 12 - 20 - 21:40
* @Description:Text6
* @version:1.0
*/
public class LookingFor {
public static void main(String[] args) {
System.out.println("Tips:现在进行寻找一些连续的正整数的立法和正好等于另外一个整数的立方");
int min= 1;
int max =180;
int i;
int j;
int num =0;//数值初始化
int sum = 0;//数值初始化
int k=0;//进行友好性的判断
//int check=0;//进行sum值的接收
int non =0;//进行数组arr2的元素按次序放入
int[] arr1 = new int[max];//这里装单个整数的立方
for(i = 1;i<=max;i++){//这里进行将整数的立方装进数组
arr1[i-1]=i*i*i;
}
int []arr2 = new int[max];//这里进行对sum和数组arr1中存在相等的数进行储存
//这里进行连续的整数和计算与判断
for(i=min;i<max-1; i++){//这里进行最小值的增加
for(j =i+1;j<=max;j++){//这里进行最大值的增加
for(int m=i;m<=j; m++){
num = m*m*m;
sum +=num;
}
for(int n=0;n<max;n++){
if(sum==arr1[n]){//
if(arr2[0]==0){
System.out.println("此处有"+i+"^3+...+"+j+"^3"+"=arr1["+n+"]="+arr1[n]+"="+(n+1)+"^3");
arr2[0]=sum;
k =1;//打开友好性回复开关
non++;
}else {
if(compare(sum,arr2)){//将sum值传入compare方法体中进行判断数值是否重复
System.out.println("此处有"+i+"^3+...+"+j+"^3"+"=arr1["+n+"]="+arr1[n]+"="+(n+1)+"^3");
arr2[non]=sum;
k =1;//打开友好性回复开关
non++;
}
}
}
}
sum =0;//重新重置为0
}
}
if(k==0){//进行没有的友好性提示
System.out.println("这里没有");
}
}
public static boolean compare(int getnum,int []getarray){
boolean key= false;//定义开关
for (int i = 0; i < getarray.length; i++) {//循环对比arr2数组中是否有相同的数
if(getarray[i]!=0){
if(getnum!=getarray[i]){
key =true;//将开关打开
}else {key =false; break;}//在对比中遇到相同元素时赋值false,然后不必对比了用break
}else {break;}//当遇到arr2数组元素为0时,此元素后面的元素也是0,是初始值,所以不必对比了
}
return key;//返回结果
}
}
希望对你有所帮助!!!?
|