Задача:
Даны натуральное число [latex]n[/latex], действительные числа [latex]a_1, … , a_n[/latex] . Вычислить:
[latex]-a_1, a_2, -a_3, … , (-1)^na_n[/latex]Тесты:
[latex]n[/latex] | [latex]a_1, … , a_n[/latex] | [latex]-a_1, a_2, -a_3, … , (-1)^na_n[/latex] | Комментарий |
4 | 3 -2 -3 6 | -3 -2 3 6 | Пройден |
5 | 40 -30 0 34.5 0.2 | -40 -30 0 -34.5 0.2 | Пройден |
3 | 126 -486.95 -20.0985 | -126 -486.95 20.0985 | Пройден |
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> using namespace std; int main() { int n;//Натуральное число double a;//Действительное число cin >> n; //Вводим натуральное число for(int i=1; i <=n; i++) { cin >> a; if(i%2 != 0) // Если номер n числа a - парное число, { // то умножаем a на -1 a*= -1; } cout << a << endl;// Выводим a } return 0; } |
Для начала вводим число [latex]n[/latex]. Задаем цикл для ввода ряда чисел [latex]a_1, … , a_n[/latex]. Если [latex]n[/latex] — парное число, умножаем введенное [latex]a[/latex] на [latex]-1[/latex]. Выводим результат.
Код Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; import java.lang.*; import java.io.*; class Depo { public static void main (String[] args) throws java.lang.Exception { double n, a; Scanner in = new Scanner(System.in); n=in.nextDouble(); for(int i=1; i <=n; i++){ a=in.nextDouble(); if(i%2 != 0){ a*=-1; } System.out.println(a); } } } |
К сожалению, неверно. Похоже, основная проблема в том, что вместо тестов использутеся вывод самой же программы.
Последовательность получилась неправильной, а последний элемент ваще всегда не обрабатывается.
Последний элемент обрабатывается. Хоть счётчик начинается с 1.
Но последовательность действительно не та.
Вы перепутали чёт и нечет.
В метках «возведение в степень», но настоящего возведения в задаче нет. Так математики обозначают чередование знака.
Исправлено
Зачтено