打印一个5位数字,这样如果我们在开头放1,那么得到的6位数比我们输入数字的1 @末小3倍

时间:2018-05-24 19:47:26

标签: python

到目前为止这是我的代码

public function store(Request $request)
{
    $this->validate($request, [
      'name' => 'required|max:255',
      'description' => 'required'
    ]);

    $recipe = new Recipe;

    $recipe->name = $request->name;
    $recipe->description = $request->description;
    $recipe->user_id = auth()->user()->id;

    $recipe->save();

    return Response::json(array(
      'success' => true,
      'data'   => $data
    )); 
}

断裂

我知道答案应该是42857,但它给了我10000

1 个答案:

答案 0 :(得分:0)

由于x的初始化错误,循环永远不会执行。此外,z是常数(不依赖x

在您的代码中,它可能会打印100000,因为缩进的缩进使else语句与while匹配。由于不会出现break,因此会打印x的最后一个值。

最好做一个for循环。这有效:

for x in range (1,100000):
    y = x + 100000
    z = x*10 + 1
    if y == z//3:
        print(x)
        break
else:
    # for loop completed without break
    print("not found")

或在一行中,使用next和生成器理解:

result = next(x for x in range (1,100000) if x + 100000 == (x*10 + 1)//3)

在这两种情况下,结果确实是42857