[Exam] 26 April 2015 Evening - Problem 03. Sunlight
Колеги, моля за помощ. Не мога да разбера къде точно ми е грешката в долната част на "слънцето"... Задачата е от exam-a през април. Ето и условието:
Sandy is a little girl who spends her free time playing with her friends. Unfortunately, Sandy broke her wristwatch a week ago. Now she is trying a new trick using the sunlight to guess the time. But this trick is useful only when the sky isn’t cloudy. Your task is to help Sandy by writing a program which shows how bright the sun is at the moment.
You are given an integer number N (always odd), corresponding to the width and height of the sun and the length of the horizontal and vertical sunbeams. The diagonal sunbeams have length equal to N – 1.
Input
The input data should be read from the console.
- On the only input line you will be given an integer N - the size of the sun.
The input data will always be valid and in the format described. There is no need to check it explicitly.
Output
The output should be printed on the console. Use the “*” (asterisk) to mark the sun and the sunbeams and “.” (dot) for the rest. Follow the examples below.
Constraints
- N will always be a positive odd number in the range [3 … 33].
- Allowed working time for your program: 0.1 seconds. Allowed memory: 16 MB.
-------------------------------------------------------------------------------------------------------------------------------------
Решението - ТУК
http://pastebin.com/g0ACzKMK .. примерно решение и при мен всичко е наред с тестовете :))
Здравей Валентине,
тестовете са верни - просто като се търси зависимост между точки и звезди - тя трябва да е универсална, не да отговаря на един пример само.
Центъра на рисунката ти е добре измислен, всичко е n на брой, не 3, не 5, а n, за да е вярно з авсяко n.
Същото трябва да направиш и за първия и последния цикъл -
21, 22-ри ред:
innerDots = n+1;
outerDots = 0;
48, 49-ти ред:
innerDots = 1;
outerDots = n;
зависимостите са други:
15-ти ред става: int outerDots = (n * 3) / 2;
21-ви ред: innerDots = ((n * 3) - 3) / 2;
помисли как да направиш и втората половина.