仅使用第一个和最后一个数字制作范围? Java的?

时间:2017-03-23 19:59:40

标签: java

我必须输入特定天数和起始号码。有了这个,天数被分成两半,上半年开始数减少2.上半部分增加1.如果天数不均匀,后半部分又增加一天。继承人我所拥有的:

raw_decode

我现在卡住了。 如果你看到任何我很高兴听到它。我只需要一些帮助/建议。如果这很难理解,我会澄清任何事情。提前谢谢

编辑: 最终输出应该如下所示:

>>> text="""{
...   "hello": 2,
...   "world": 3
... }{
...   "something": 5,
...   "else": 6
... }
... 
... """

>>> import json
>>> decoder = json.JSONDecoder()
>>> text = text.lstrip() # decode hates leading whitespace
>>> while text:
...     obj, index = decoder.raw_decode(text)
...     text = text[index:].lstrip()
...     print(obj)
... 
{'world': 3, 'hello': 2}
{'else': 6, 'something': 5}

如果这是有道理的。

继承我的输出:

int days;
int num;
int 1half;
int 2half;
int new_num;

System.out.print("Enter number of days: ");
days = keyboard.nextInt();   

System.out.print("Enter number of first day: ");   
num = keyboard.nextInt();

int half = days/2;
if (days %2 == 0){
    1half = (half);
    2half = (half);
} else {
    1half = (half); 
    2half = (half) + 1;
}

int first_half[] = {1,(half)};
int last_half[] = {((half)+1), days};
while (1half > 1 || 1half < half) {
    new_temp = temp - 2;
    System.out.println("Day \t Num");
    System.out.println(new_num);
    first_half--;
}

while(2half >= (half + 1) && (2half <= days)) {
    new_temp = temp++;
    System.out.println("Day \t Num");
    System.out.println(new_num);
    last_half--;
}

永远持续

2 个答案:

答案 0 :(得分:0)

我不知道为什么你需要那些数组和其他东西,但你可能会看看我的代码。它产生你想要的东西。

        int days = 11;
        int num = -10;
        int output = num + 2;
        System.out.println("Day \t Num");
        int half = days / 2;
        for (int i = 1; i <= half; i++) {
            output -= 2;
            System.out.println(i + "\t" + output);
        }
        for (int i = half + 1; i <= days; i++) {
            output++;
            System.out.println(i + "\t" + output);
        }

答案 1 :(得分:0)

你的无限循环是由你的条件陈述引起的:

while (1half > 1 || 1half < half)

如果1half设置为任何大于1的数字,那么这将永远循环。您可能也希望使用&&而不是||。但是,不要在循环体中看到任何会影响事物的东西,以使其脱离循环。