어떤 사람은 나를 MATLAB에서이 문제를 해결하는 데 도움이 바랍니다 수 :Matlab 함수 huge_add?
쓰기 기능 소수점 표기법을 사용하여 문자열로 지정된 길이의 두 개의 양의 정수를 추가
huge_add
을했다. 단일 출력 인수는 결과이며 문자열이기도합니다. 입력과 출력은 숫자 만 포함해야합니다. 쉼표, 공백 또는 다른 문자는 허용되지 않습니다. 입력에 의해 이러한 가정 중 하나라도 위반되면 함수는 숫자-1
을 반환합니다.
내가 쓴 코드는 다음과 같습니다
이function[c]=huge_add(a1,b1)
aaa=length(a1);
bbb=length(b1);
c=0;
if isnumeric(a1) ||isnumeric(b1)
c=-1;
else if ~isnumeric(a1) ||~isnumeric(b1)
for i=1:aaa
if a1(i)~='1'&& a1(i)~='2'&&a1(i)~='3'&&a1(i)~='4'&&a1(i)~='5'&&a1(i)~='6'&&a1(i)~='7'&&a1(i)~='8'&&a1(i)~='9'&&a1(i)~='0'
c=-1;
end
end
for i=1:bbb
if b1(i)~='1'&&b1(i)~='2'&&b1(i)~='3'&&b1(i)~='4'&&b1(i)~='5'&&b1(i)~='6'&&b1(i)~='7'&&b1(i)~='8'&&b1(i)~='9'&&b1(i)~='0'
c=-1;
end
end
end
a=a1;
b=b1;
aa=length(a);
bb=length(b);
as=(str2num(a));
bs=(str2num(b));
af=fliplr(a);
bf=fliplr(b);
if c~=-1
if aa<bb
for ii=1:aa
x(ii)=af(ii);
y(ii)=bf(ii);
z(ii)=str2num(x(ii))+str2num(y(ii));
zz{ii}=num2str(z(ii));
end
cl=fliplr(z);
rem=(b(1):b(bb-aa));
ca=[rem,cl(1):cl(end)];
else if aa>bb
for ii=1:bb
x(ii)=af(ii);
y(ii)=bf(ii);
z(ii)=str2num(x(ii))+str2num(y(ii));
zz(ii)=num2str(z(ii))
end
cl=fliplr(z);
rem=(a(1):a(aa-bb));
ca=[rem,cl(1):cl(end)];
else
for ii=1:aa
x(ii)=af(ii);
y(ii)=bf(ii);
z(ii)=str2num(x(ii))+str2num(y(ii));
zz(ii)=num2str(z(ii));
end
cl=fliplr(z);
rem=[];
ca=[rem,cl(1):cl(end)];
end
end
d=str2num([rem,fliplr(zz)])
%d=([rem,fliplr(zz)])
c=num2str(d);
end
end
end
그리고 내가 오류가
Feedback: Your function performed correctly for argument(s) '1', '1'
Feedback: Your function performed correctly for argument(s) '10', '22'
Feedback: Your function performed correctly for argument(s) '1234', '1'
Feedback: Your function performed correctly for argument(s) '0', '0'
Feedback: Your function performed correctly for argument(s) '12', '-2'
Feedback: Your function performed correctly for argument(s) '99.99', '0'
Feedback: Your function performed correctly for argument(s) '1,234', '1'
Feedback: Your function performed correctly for argument(s) 12, 34
Feedback: Your function performed correctly for argument(s) [1 2 3], '1'
Feedback: Your function performed correctly for argument(s) '2', [50 51 52]
Feedback: Your program made an error for argument(s) '612455618766556780', '6285757'
Your solution is _not_ correct.
이 도와주세요입니다 .....
왜 이것이 65 줄의 루프 여야하는지 이해할 수 없습니다. ['+'] (http://www.mathworks.com/help/matlab/ref/plus.html) 및 ['sprintf'] (http://www.mathworks.com/help/matlab)를 사용할 수 있습니까? /ref/sprintf.html)? – excaza
친절한 도움에 감사드립니다. 나는 코드에 그들을 통합하는 방법을 정말로 모른다. 프로그래밍에 익숙하지 않고 더 나은 것을 더 잘 이해하려고 노력합니다. 제발 그것에 대해 안내해 줄 수 있어요 – ishika
예문으로 가득 찬 문서를 링크했습니다. – excaza