#include <stdio.h>
#include <string.h>
int top=-1;
int s1=0,s2=0;int stack[201]= {};
int o()
{
s1--;
return s1;
}
int t()
{
s2--;
return s2;
}
void push(int w) {
stack[++top]=w;
}
void pop() {
while(1) {
if (top==0) {
break;
return;
}
printf("%d",stack[top--]);
}
}
int main() {
char str1[200]= {},str2[200]= {};
gets(str1);
gets(str2);
int s;
s1=strlen(str1);
s2=strlen(str2);
for (int i=s2 ; i>=0 ; i--) {
o();t();
s=str1[s1]-str2[s2];
//o();t();
if (s>=0) {
push(s);
}
else {
str1[s1-1]--;
str1[s1]+=10;
s=str1[s1]-str2[s2];
push(s);
}
}
pop();
}
https://www.biko.kr/problem/4692
#include <stdio.h>
#include <string.h>
int top=-1;
int stack[200]={};
int res=0;
int bbb=0;
char str1[200]={};
char str2[200]={};
void pop()
{
if (bbb==1){
printf("-");
}
while (1) {
if (top==-1)
return;
printf("%d",stack[top--]);
}
}
void push(int k)
{
stack[++top]=k;
}
void del()
{
while (stack[top]==0)
{
top--;
if (top==0)
{
break;
}
}
}
void view()
{
printf("str1 : %s\nstr2 : %s\nres : %d\n",str1,str2,res);
}
int main()
{
char aaa[200]={};
gets(str1);
gets(str2);
int len1=strlen(str1)-1;
int len2=strlen(str2)-1;
if ()
{
strcpy(aaa,str1);
strcpy(str1,str2);
strcpy(str2,aaa);
bbb=1;
}
while (1)
{
int x=0,y=0;
if (len1!=-1)
{
x=str1[len1--]-'0';
}
if (len2!=-1)
{
y=str2[len2--]-'0';
}
if (x-y>=0) {
res=x-y;
//printf("x : %d y : %d res :%d\n",x,y,res);
push(res);
}
else {
str1[len1]--;
x+=10;
res=x-y;
//printf("x : %d y : %d res :%d\n",x,y,res);
push(res);
}
//view();
if (len1==-1)
break;
}
del();
pop();
}