三道题 流程 不知道从哪下手思考,有的只知道i/100 (i%100)/10 i%100%10百位,十位,个位,

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?这道题只知道 第几个人设为0(a-1)+2 是第四个人的 往后就不会编了
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
流程 注释

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
流程 注释

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
流程 注释

不好意思 三道题

1.
这道用递归算法

这里我没懂你说什么,为0?为什么要a-1再加2,估计题目看错了吧- -
程序如下:

public class First{
public static void main(String[] args) {
int age=10;
for(int i=1;i<5;i++) {
age+=2; //这个应该好理解的吧,后一个人比前一个人大2岁
}
System.out.println("第五个人为"+age+"岁");
}
}

2.
这题,我一开始想复杂了.用的是老土的方法,if(n>99999)....if(n>=1000&&n<=99999)...
然后输出几位数,最后再用除法求出为各个位数.最后代码一大堆,还容易出错
我这里有个用字符串数组的方法很简单也比较容易理解:
import java.util.Scanner;
public class Second {
public static void main(String[] args){
Second tn = new Second();
Scanner s = new Scanner(System.in);
long a = s.nextLong(); //将输入的数据转化为长整型;
String ss = Long.toString(a);//将long a转换为字符串ss;
char[] ch = ss.toCharArray(); //用.toCharArray()方法将字符串ss转换为字符串数组ch;
System.out.println(a + "是" + ch.length + "位数");//输出字符串数组的长度即该数据的位数;
for(int i=ch.length-1; i>=0; i--) { //字符串数组从ch[0] --> ch[ch.length-1],依次存储了数据的各个位数
System.out.print(ch[i]); //利用for循环按倒序输出字符串数组内的数据,即该5位数的各个位数
}
}
}

3.嘿嘿,这题也用字符串数组更简单些

import java.util.Scanner;
public class Third {
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
System.out.print("请输入一个5位正整数:");
long a = s.nextLong(); //将输入数据转换为long型 a;
String ss = Long.toString(a); //将a转换为字符串ss;
char[] ch = ss.toCharArray(); //把字符串ss转换为字符串数组ch;
if(ch[0]==ch[4]&&ch[1]==ch[3]){ //个位与万位相同,十位与千位相同
System.out.println("这是一个回文数");
}
else {
System.out.println("这不是一个回文数");
}
}
}

这里有哪里不理解的QQ里讲吧
温馨提示:答案为网友推荐,仅供参考
相似回答