回答編集履歴

1

edit

2018/03/08 16:47

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -1,12 +1,68 @@
1
- > 引用テキスト入力され数値各桁を四捨五入、入力され数値に対して最大値
1
+ 無限に続くと感じ「進捗優先」末に問題文にたどり着きました
2
2
 
3
3
 
4
4
 
5
+ > 1 以上の整数 A が与えられます。
6
+
7
+ A の好きな桁に対して好きな順番で好きな回数だけ四捨五入をおこなって、できるだけ大きな整数を作ってください。
8
+
9
+
10
+
11
+ 255の入力に対して正解が310ではなく300なのがポイントなのですね…
12
+
13
+
14
+
15
+ ```python
16
+
17
+ A = [int(i) for i in reversed(input())]
18
+
19
+
20
+
21
+ def f(A, p):
22
+
23
+ if A[p] >= 5:
24
+
25
+ if p == len(A)-1:
26
+
27
+ A.append(1)
28
+
29
+ else:
30
+
31
+ A[p+1] += 1
32
+
33
+ A[:p+1] = [0]*(p+1)
34
+
35
+ return p+1
36
+
37
+ else:
38
+
39
+ return p-1
40
+
41
+
42
+
43
+ p = len(A)-1
44
+
45
+ while p >=0:
46
+
47
+ p = f(A, p)
48
+
49
+
50
+
51
+ print(''.join(str(v) for v in reversed(A)))
52
+
53
+ ```
54
+
55
+
56
+
57
+ ---
58
+
59
+
60
+
61
+ ~~> 引用テキスト入力された数値の各桁を四捨五入し、入力された数値に対して最大値
62
+
5
63
  四捨五入すると最大値になるとは限らないので、問題がわからなかったのですが、
6
64
 
7
- 888が入力された時に999なら上のprint、1000なら下のprint。
65
+ 888が入力された時に999なら上のprint、1000なら下のprint。~~
8
-
9
-
10
66
 
11
67
  ```python
12
68