Tin học Tây Sơn

Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Go down

Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Bài gửi by Admin on Thu Dec 13, 2018 3:41 pm

Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.
Cho biểu thức sau: 7? (4 ? 5) ? (2 ? 9)= n. Với n là số nguyên được nhập từ bàn phím. Hãy lập trình thay dấu '?' bằng dấu '+' hoặc dấu ' - ' thích hợp sao cho có tổng bằng n. Với n là số nguyên được nhập từ bàn phím (-32000<n<32000).
InOut
137 + (4 - 5) - (2 - 9)= 13
4Botay.com
rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Khó vá Thầy

Bài gửi by Nguyễn Ngọc Thiên on Thu Dec 13, 2018 7:58 pm

Admin đã viết:Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.
Cho biểu thức sau: 7? (4 ? 5) ? (2 ? 9)= n. Với n là số nguyên được nhập từ bàn phím. Hãy lập trình thay dấu '?' bằng dấu '+' hoặc dấu ' - ' thích hợp sao cho có tổng bằng n. Với n là số nguyên được nhập từ bàn phím (-32000<n<32000).
InOut
137 + (4 - 5) - (2 - 9)= 13
4Botay.com
rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545
avatar
Nguyễn Ngọc Thiên
Teen Chính hiệu
Teen Chính hiệu

Posts : 19
Reputation : -179986
Join date : 06/11/2018
Age : 14
Location : Bình tường, Tây Sơn, Bình Định

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Bài gửi by Admin on Thu Dec 13, 2018 8:59 pm

Nguyễn Ngọc Thiên đã viết:
Admin đã viết:Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.
Cho biểu thức sau: 7? (4 ? 5) ? (2 ? 9)= n. Với n là số nguyên được nhập từ bàn phím. Hãy lập trình thay dấu '?' bằng dấu '+' hoặc dấu ' - ' thích hợp sao cho có tổng bằng n. Với n là số nguyên được nhập từ bàn phím (-32000<n<32000).
InOut
137 + (4 - 5) - (2 - 9)= 13
4Botay.com
rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545
hậu quả của thường xuyên nghỉ học 54353
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Bài gửi by Nguyễn Văn Biên on Fri Dec 14, 2018 8:11 pm

Code cho chương trình cũ
ĐỀ CT CŨ:
Admin đã viết:Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.
Cho biểu thức sau: 7? (4 ? 5) ? (2 ? 9)= n. Với n là số nguyên được nhập từ bàn phím. Hãy lập trình thay dấu '?' bằng dấu '+' hoặc dấu ' - ' thích hợp sao cho có tổng bằng n. Với n là số nguyên được nhập từ bàn phím (-32000<n<32000).
InOut
137 + (4 - 5) - (2 - 9)= 13
4Botay.com
rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545
(ctc sinh dùng được cho mọi trường hợp)
Spoiler:
Code:
program Thay_dau;
uses crt;
var a,b,n,t:integer;
    x:string[4]='0000';
    ok:boolean;

function kt:boolean;
var i:integer;
begin
        kt:=false;
        for i:=1 to length(x) do
        if x[i]='0' then exit;
        kt:=true
end;

procedure sinh;
var vt:integer;
begin
        vt:=length(x)-1;
        if x[length(x)]='0' then x[length(x)]:='1'
        else
        begin
                x[length(x)]:='0';
                while x[vt]='1' do
                begin x[vt]:='0'; dec(vt) end;
                x[vt]:='1'
        end
end;

function dau(k:char):char;
begin
        if k='0' then dau:='+'
        else dau:='-'
end;

begin
        clrscr; ok:=false;
        write('N = '); readln(n);
        while not kt do
        begin
                t:=7;
                if x[2]='0' then a:=4+5 else a:=4-5;
                if x[1]='0' then t:=t+a else t:=t-a;
                if x[4]='0' then b:=2+9 else b:=2-9;
                if x[3]='0' then t:=t+b else t:=t-b;
                if t=n then
                begin ok:=true; break end
                else sinh
        end;
        if ok then write(7,dau(x[1]),'(4',dau(x[2]),'5)',dau(x[3]),'(2',dau(x[4]),'9) = ',n)
        else write('Khong the');
        readln
end.

_________________

My:
- XDA Account
- Blog
- Game

...
avatar
Nguyễn Văn Biên
Recognised Member & Recognised Developer & Protected Member & Super Administrator
Recognised Member & Recognised Developer & Protected Member & Super Administrator

Posts : 220
Reputation : 1129923
Join date : 18/06/2018
Age : 15
Location : ?

Xem lý lịch thành viên https://bien2004official.blogspot.com

Về Đầu Trang Go down

Re: Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Bài gửi by Admin on Fri Dec 14, 2018 8:34 pm

Nguyễn Văn Biên đã viết:Code cho chương trình cũ
ĐỀ CT CŨ:

Admin đã viết:Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.
Cho biểu thức sau: 7? (4 ? 5) ? (2 ? 9)= n. Với n là số nguyên được nhập từ bàn phím. Hãy lập trình thay dấu '?' bằng dấu '+' hoặc dấu ' - ' thích hợp sao cho có tổng bằng n. Với n là số nguyên được nhập từ bàn phím (-32000<n<32000).
InOut
137 + (4 - 5) - (2 - 9)= 13
4Botay.com
rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545 rye545
(ctc sinh dùng được cho mọi trường hợp)
Spoiler:

Code:
program Thay_dau;
uses crt;
var a,b,n,t:integer;
    x:string[4]='0000';
    ok:boolean;

function kt:boolean;
var i:integer;
begin
        kt:=false;
        for i:=1 to length(x) do
        if x[i]='0' then exit;
        kt:=true
end;

procedure sinh;
var vt:integer;
begin
        vt:=length(x)-1;
        if x[length(x)]='0' then x[length(x)]:='1'
        else
        begin
                x[length(x)]:='0';
                while x[vt]='1' do
                begin x[vt]:='0'; dec(vt) end;
                x[vt]:='1'
        end
end;

function dau(k:char):char;
begin
        if k='0' then dau:='+'
        else dau:='-'
end;

begin
        clrscr; ok:=false;
        write('N = '); readln(n);
        while not kt do
        begin
                t:=7;
                if x[2]='0' then a:=4+5 else a:=4-5;
                if x[1]='0' then t:=t+a else t:=t-a;
                if x[4]='0' then b:=2+9 else b:=2-9;
                if x[3]='0' then t:=t+b else t:=t-b;
                if t=n then
                begin ok:=true; break end
                else sinh
        end;
        if ok then write(7,dau(x[1]),'(4',dau(x[2]),'5)',dau(x[3]),'(2',dau(x[4]),'9) = ',n)
        else write('Khong the');
        readln
end.
hàm sinh() chưa hay lắm study
avatar
Admin
Admin
Admin

Posts : 687
Reputation : -10042
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Thay dấu '?' bằng dấu '+' hoặc dấu '-' để được biểu thức đúng.

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết