求大神帮忙看一下下面两道Java填空题。救救孩子吧!(求给详细步骤)

①程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入2个正整数m和n(1<=m<=n),求出m~n之间(含m,n)所有各位数字的和为一个平方数的整数。要求调用方法(函数)isSquare(i),该方法用于判断i的各位数字之和是否为一个平方数。

例:括号内是说明
输入:
1 (repeat=1)
320 360
输出:
324 333 342 349 351 358 360 (如324:3+2+4=9=3*3)

import java.util.*;
public class T1{
/*---------*/
public static void main(String []args){
int ri,repeat,m,n,i;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1;ri<=repeat;ri++){
m=in.nextInt();
n=in.nextInt();
for(i=m;i<=n;i++)
if(isSquare(i))System.out.print(i+" ");
System.out.println();
}
}
}
②编程,输入一个正整数 n (n>0),做 n 次下列运算:
输入1个不含空格的字符串(长度大于等于1),将其逆序输出。

说明:
1)程序中的第一个大括号“{”必须位于类名所在行。
2)类名与变量名由编程者自取。
3)不要使用nextLine()方法。

输入输出示例:括号内为说明
输入:
2 (n=2,后面将分别输入2个字符串)
hello_world (第一个字符串)
Java (第二个字符串)
输出:
dlrow_olleh (第一个输出)
avaJ (第二个输出)

//第一题
public boolean isSquare(int i){
byte [] in = String.valueOf(i).getBytes();
long result = 0;
for(byte b:in){
result += b - 48;
}
if((Math.sqrt(result)%1) == 0) return true;
return false;
}

//第二题   输入那些自己写个Scanner输入
public void reverseString(String s){
if(s.length() == 1){
System.out.print(s);
}else{
String nextStr = s.substring(0,s.length()-1);
String outStr = s.substring(s.length()-1);
System.out.print(outStr);
reverseString(nextStr);//递归,自己调用自己
}

温馨提示:答案为网友推荐,仅供参考
相似回答