1 / 5
Jun 2017

Mam problem z tym zadaniem sędzia daje werdykt jako błędna odp. Oto mój kod:

#include <iostream> 
using namespace std;
int a, b, l, p, k;
int main()
{
	cin >> l;
	int*p;
	p = new int[l];
	for (int i = 0; i < l; i++)
	{
		cin >> a >> b;
		if (a > b)
		{
			k = a;
			a = b;
			b = k;
		}    if (a == b)
			p[i] = a;
		else {
			switch (a)
			{
			case 4:
			{            if (b % 4 == 0)
				p[i] = b;
			else
				if (b % 2 == 0)
					p[i] = b * 2;
				else
					p[i] = b * 4;
			}        break;
			case 6:
			{            if (b % 6 == 0)
				p[i] = b;
			else
			{
				if (b % 2 == 0)
					p[i] = 3 * b;
				if (b % 3 == 0)
					p[i] = 2 * b;
				if ((b % 2 != 0)&(b % 3 != 0))
					p[i] = 6 * b;
			}    }
			break;
			case 8:
			{            if (b % 8 == 0)
				p[i] = b;
			else
			{
				if (b % 4 == 0)
					p[i] = b * 2;
				else
				{
					if (b % 2 == 0)
						p[i] = b * 4;
					else
					{
						p[i] = b * 8;
					}
				}
			}        }         break;
			case 9:
			{            if (b % 9 == 0)
				p[i] = b;
			else
			{
				if (b % 3 == 0)
					p[i] = b * 3;
				else
					p[i] = b * 9;
			}        }        break;
			case 10:
			{            if (b % 10 == 0)
				p[i] = b;
			if ((b % 5 == 0) && (b % 10 != 0))
				p[i] = b * 2;
			if ((b % 2 == 0)&(b % 10 != 0))
				p[i] = b * 5;
			if ((b % 2 != 0)&(b % 5 != 0))
				p[i] = b * 10; }
			break;
			default:
			{if (b%a == 0)
				p[i] = b;
			else
				p[i] = b*a;    }
			}
		}
	}
	for (int j = 0; j < l; j++)
		cout << p[j] << endl;
	return 0;
}
  • created

    Jun '17
  • last reply

    Jun '17
  • 4

    replies

  • 474

    views

  • 4

    users

  • 1

    link

Chyba nie zdziwisz się gdy powiem, że tego kodu nie da się czytać, prawda?

https://ideone.com/pWe4KN5

Twój program nie działa nawet dla przykładowego wejścia (180 zamiast 60)

EDIT
No chyba, że coś źle wymyśliłem. Wszak zapewne wiesz, że Twój kod w ogóle się nie kompiluje - instrukcja include using namespace std; nie ma sensu.

Dobrze wymyśliłeś, tak obcina kod gdy się go po prostu wkleja. # traktuje jako nagłówek a <iostreream> wywala, bo jest w nawiasach trójkątnych i discuss traktuje to jako tag htmlowy.

.. gdy kod się po prostu tylko wkleja to są takie opłakane skutki.
Jeżeli jednak potem, po wklejeniu, zaznacza się [np myszą] i po zaznaczeniu traktuje przyciskiem < / > [lub ctrl shift C], co zrobił właśnie za @zbigniew_75'a moderator @j4rooo , to od razu widać różnicę.
Wcześniej warto też, a nawet trzeba, odzielić kod od "zwykłego" tekstu postu, pustymi liniami.

Dzięki za wszelką pomoc. program napisałem dla a<=10, a powinno być 10<=a.
Pozdrawiam Zibi