PAT(Advanced Level) Practice 1001 A+B Format(20점)
1001 A+B 포맷(20점)
Calculate a + b a+b a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input Specification:
Each input file contains one test case. Each case contains a pair of integers a a a and b b b where − 1 0 6 < = a , b < = 1 0 6 −10^6<=a, b<=10^6 −106<=a,b<=106 . The numbers are separated by a space.
Output Specification:
For each test case, you should output the sum of a a a and b b b in one line. The sum must be written in the standard format.
Sample Input:
1000000 9
Sample Output:
999,991
My code: #include
#include
#include
char* g(char *a)
{
int p = strlen(a);
char *b;
b = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
b[i] = 0;
}
for (int i=0;i<p;i++){
b[p-i-1] = a[i];
}
return b;
}
char* f(int c)
{
char *str;
str = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
str[i] = 0;
}
int index = 0;
while(1){
int tmp = c%10;
c = c/10;
str[index] = tmp+'0';
index++;
if(c==0)break;
}
return g(str);
}
int main(void)
{
char *re;
re = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
re[i] = 0;
}
int a,b;
scanf("%d %d",&a, &b);
int c = a+b;
int sign=0;
if (c<0){
sign=1;
c = -c;
}
re = f(c);
if (sign==1)printf("-");
int index = 0;
int q = strlen(re);
while (re[index]!=0){
if (index>0 && (q-index)%3==0){
printf(",");
}
printf("%d",re[index]-'0');
index++;
}
free(re);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT(Advanced Level) Practice 1002 A+B for Polynomials(25점)
This time, you are supposed to find A + B A+B A+B where A A A and B B B are two polynomials.
Each input file contains on...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
1000000 9
999,991
#include
#include
#include
char* g(char *a)
{
int p = strlen(a);
char *b;
b = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
b[i] = 0;
}
for (int i=0;i<p;i++){
b[p-i-1] = a[i];
}
return b;
}
char* f(int c)
{
char *str;
str = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
str[i] = 0;
}
int index = 0;
while(1){
int tmp = c%10;
c = c/10;
str[index] = tmp+'0';
index++;
if(c==0)break;
}
return g(str);
}
int main(void)
{
char *re;
re = (char*)malloc(sizeof(char)*20);
for (int i=0;i<20;i++){
re[i] = 0;
}
int a,b;
scanf("%d %d",&a, &b);
int c = a+b;
int sign=0;
if (c<0){
sign=1;
c = -c;
}
re = f(c);
if (sign==1)printf("-");
int index = 0;
int q = strlen(re);
while (re[index]!=0){
if (index>0 && (q-index)%3==0){
printf(",");
}
printf("%d",re[index]-'0');
index++;
}
free(re);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT(Advanced Level) Practice 1002 A+B for Polynomials(25점)This time, you are supposed to find A + B A+B A+B where A A A and B B B are two polynomials. Each input file contains on...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.