Równanie liniowe – pomoc w zrozumieniu sensu zadania

0

Witam, już trochę siedzę nad tym i już sam nie wiem co jest nie tak, potrzebuje porady może ktoś pomoże,
zadanie pochodzi ze strony https://szkopul.edu.pl/problemset/problem/MJd-k0bS1ut1mRh1qA-_QBhQ/site/?key=statement
według testera mam 60%

błędy pokazane na testerze

1 wiersz 1: wczytano '1', a oczekiwano '0'
2 wiersz 1: wczytano '1', a oczekiwano '0'
6 wiersz 1: wczytano '1', a oczekiwano '0'
8 wiersz 1: wczytano '1', a oczekiwano '0'

oto mój kod:

var a, b : real;
begin
read (a,b);
if (a <> 0) then
begin
writeln ('1');
end
else if (b = 0) then
begin
writeln ('NIESKONCZONOSC');
end
else writeln ('0');
readln;
 readln;
end.
0

Twoim zadaniem będzie obliczenie liczby liczb całkowitych spełniających to równanie

0

patryk27 nie wiem co masz na myśli, zmianę typu danych?

1

Użyj liczb całowitych, bo w nich Szukasz ilości rozwiązań, (nie znam za bardzo Pascala) tak by to wyglądało w pseudokodzie: (mogłem coś pominąć):

def solution_int(a, b):
	if b % a == 0:
		return 1
	else:
		return 0

def num_solutions(a, b):
	if b == 0:
		if a == 0: 
			return "inf"
		else:
			return 1
	else:
		if a == 0:
			return 0
		else:
			return solution_int(a, b) 

0

patryk27 nie wiem co masz na myśli, zmianę typu danych?

Ile rozwiązań poda Twój algorytm np. dla równania 3x=5?
Ile z nich jest całkowitych?
W jaki sposób to wyliczyć?

0
#include <iostream>
using namespace std;

int main()
{
	static const char *tb[2][2]={{"1","1"},{"0","inf"}};
	static const char *bt[]={"1","0","inf"};
	double a,b;
	while(cin>>a>>b) cout<<tb[a==0][b==0]<<" "<<bt[((b==0)+1)*(a==0)]<<endl;
	return 0;
}

https://ideone.com/cyDjK9

1 użytkowników online, w tym zalogowanych: 0, gości: 1