在Java中找到1 => 5的函数; 2 => 4; 3 => 3; 4 => 2; 5 => 1; 6 => 7; 7 => 6;

时间:2019-12-30 13:09:34

标签: java function

此刻,我正在完成自己设定的任务: 功能应导致以下分配 1 => 5; 2 => 4; 3 => 3; 4 => 2; 5 => 1; 6 => 7; 7 => 6;

我知道我应该以某种方式使用模,并且我已经有一个解决方案6-i%7,但是它的结果当然是6 => 0。其他值是正确的。我想避免令人不快的查询。有没有更优雅的方式?这是测试方案:

 StringBuilder stb = new StringBuilder();
 String expected = "1=5; 2=4; 3=3; 4=2; 5=1; 6=7; 7=6; ";
 for (int i=1; i<8; i++) {
    int result = ... do something with i ...
    stb.append(i+"="+result+"; ");
 }
 assertEquals(expected, stb.toString());

2 个答案:

答案 0 :(得分:3)

使用以下公式:

result = (12 - i) % 7 + 1

答案 1 :(得分:0)

这是我的尝试:

 StringBuilder stb = new StringBuilder();
 String expected = "1=5; 2=4; 3=3; 4=2; 5=1; 6=7; 7=6; ";
 int j = 5;
 for (int i=1; i<8; i++) {
    stb.append(i + "=" + j + "; ");
    j--;
    if(j == 0) {
       j = 7;
    }
 }
 assertEquals(expected, stb.toString());