一个java小程序的问题

java怎么实现输入四位数,程序自动为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换?最后要输出变化后的四位数... java怎么实现输入四位数,程序自动为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换?
最后要输出变化后的四位数
展开
 我来答
B2K1bonPplR
2013-09-25 · TA获得超过2049个赞
知道小有建树答主
回答量:1156
采纳率:72%
帮助的人:390万
展开全部
import java.util.Scanner;
public class 输入四位数换位 {
  public static void main(String[] args) {
    System.out.println("请输入一个四位数:");
    Scanner 输入 = new Scanner(System.in);
    int 四位数 = 输入.nextInt();
    if (四位数 < 1000 || 四位数 > 9999) {
      System.out.println("输入的数不是四位数");
    }
    int 结果千位数 = ((四位数 % 10) + 5) % 10;
    int 结果百位数 = (((四位数 % 100) / 10) + 5) % 10;
    int 结果十位数 = (((四位数 % 1000) / 100) + 5) % 10;
    int 结果个位数 = ((四位数 / 1000) + 5) % 10;
    System.out.println(结果千位数 * 1000 + 结果百位数*100+结果十位数*10+结果个位数);
  }
}
畅想未来1号
2013-09-25 · TA获得超过655个赞
知道小有建树答主
回答量:318
采纳率:0%
帮助的人:115万
展开全部

输入四位数为X

  1. 先获取个位数A:X除以10求余数(这个操作我们称之为"对10求余")

  2. 获取十位数B:X除以10再对10求余。百位(C)千位(D)依次类推

  3. 然后都加上5

  4. 然后把获取的个位数A乘以1000再加上十位数B乘以100加上百位数C乘以10再加上千位数D。

  5. 完了,不懂再问我!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zengshiming
2013-09-25 · 超过34用户采纳过TA的回答
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:72.1万
展开全部
先把这个四位数变成字符串,分成四段,再把每一段转成整数,再+5)%10 最后再把四个数接在一起就行了。
给个例子
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=3546;
String as=a+"";
int a1=Integer.parseInt(as.substring(0,1));
int a2=Integer.parseInt(as.substring(1,2));
int a3=Integer.parseInt(as.substring(2,3));
int a4=Integer.parseInt(as.substring(3));
a1=(a1+5)%10;
a2=(a2+5)%10;
a3=(a3+5)%10;
a4=(a4+5)%10;
System.out.println(a4+""+a3+""+a2+""+a1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2a38675
2013-09-25
知道答主
回答量:46
采纳率:100%
帮助的人:13.9万
展开全部
/**
* 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
*/
public static void main(String args[]) {
int mi=4567; //测试密码
char mi_str[]=(mi+"").toCharArray();
String mi_print[] = new String[4];
/*************每位数字都加上5,然后用和除以10的余数代替该数字***********/
for (int i = 0; i < mi_str.length; i++) {
int num=mi_str[i];
int b=((num+5)%10);
mi_print[i]=b+"";
}

String temp = "";
/*************交换第一位跟第四位***************/
temp=mi_print[0];
mi_print[0]=mi_print[3];
mi_print[3]=temp;
/*************交换第二位跟第三位***************/
temp=mi_print[1];
mi_print[1]=mi_print[2];
mi_print[2]=temp;
String print_str = "";
for (int i = 0; i < mi_print.length; i++) {
print_str+=mi_print[i];
}
System.out.println("加密后的结果为:"+print_str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不倒翁_白痴
2013-09-25 · TA获得超过283个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:133万
展开全部
import java.util.*;

public class Test
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();    // the input number, say, 1234
        
        //add 5 to each number and mod each new number with 10
        int newN = 0;
        int counter = 0;
        while(counter<4)
        {
            if(counter != 0)
                newN += ((n % Math.pow(10, counter+1) - n % Math.pow(10, counter)) / Math.pow(10, counter) + 5) % 10 * Math.pow(10, counter);
            else
                newN += (n % 10 + 5) % 10;
            counter++;
        }
        
        //switch 1st and 4th number, as well as 2rd and 3rd number
        int first = (newN / 1) % 10;
        int second = (newN / 10) %10;
        int third = (newN /100) % 10;
        int forth = (newN / 1000) % 10;
        newN = first * 1000 + forth + second * 100 + third * 10;

        //output the new number
        System.out.println("The new number is: " + newN);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式