您的位置:首页 > 其它

暂存

2016-01-15 00:00 239 查看




View Code

#include
"
iostream
"

#include
"
iostream
"

using

namespace
std;

int
n;

int
mark
=
0
;

char
a[
50
] , b[
50
];

int
c[
50
] , d[
50
];

int
f[
50
] , e[
50
];

int
La, Lb;

int
marka, markb;

int
s,t;

int
i,j;

int
_max;

int
Max(
int
x,
int
y)
{

return
x
>
y
?
x:y;
}

void
Add()
{
memset(e,
0
,
sizeof
(e));

int
m
=
0
,flag
=
0
;

if
(s
>
t)
{

for
(i
=
s
-
1
,j
=
t
-
1
;i
>=
s
-
t,j
>=
0
;i
--
,j
--
)
{
e[m
++
]
=
(c[i]
+
d[j]
+
flag)
%
10
;
flag
=
(c[i]
+
d[j]
+
flag)
/
10
;
}

for
(i
=
s
-
t
-
1
;i
>=
0
;i
--
)
{
e[m
++
]
=
(c[i]
+
flag)
%
10
;
flag
=
(c[i]
+
flag)
/
10
;
}
}

else

{

for
(i
=
t
-
1
,j
=
s
-
1
;i
>=
t
-
s,j
>=
0
; i
--
,j
--
)
{
e[m
++
]
=
(d[i]
+
c[j]
+
flag)
%
10
;
flag
=
(d[i]
+
c[j]
+
flag)
/
10
;
}

if
(t
>
s)
{

for
(i
=
t
-
s
-
1
;i
>=
0
;i
--
)
{
e[m
++
]
=
(d[i]
+
flag)
%
10
;
flag
=
(d[i]
+
flag)
/
10
;
}
}
}

while
(flag)
{
e[m
++
]
=
flag
%
10
;
flag
/=
10
;
}
Lb
=
0
;

for
(i
=
m
-
1
;i
>=
0
;i
--
)
{
b[Lb
++
]
=
e[i]
+
48
;

if
(i
==
_max) b[Lb
++
]
=
'
.
'
;
}
memset(c,
0
,
sizeof
(c));
memset(d,
0
,
sizeof
(d));

}

int
main()
{

while
(cin
>>
n)
{
memset(b,
'
0
'
,
sizeof
(b));
Lb
=
0
;

while
(n
--
)
{
s
=
0
,t
=
0
;
cin
>>
a;
La
=
strlen(a);
marka
=
La
-
1
;
markb
=
Lb
-
1
;

for
(i
=
0
;i
<
La;i
++
)
if
(a[i]
!=
'
.
'
) c[s
++
]
=
a[i]
-
'
0
'
;

for
(i
=
0
;i
<
La;i
++
)

if
(a[i]
==
'
.
'
) { marka
=
i;
break
;}

for
(i
=
0
;i
<
Lb;i
++
)
if
(b[i]
!=
'
.
'
) d[t
++
]
=
b[i]
-
'
0
'
;

for
(i
=
0
; i
<
Lb; i
++
)

if
(b[i]
==
'
.
'
) { markb
=
i;
break
;}

_max
=
Max(La
-
marka
-
1
, Lb
-
markb
-
1
);

if
(La
-
marka
-
1
>
Lb
-
markb
-
1
)
{

for
(i
=
Lb ; i
<
Lb
+
(La
-
marka
-
Lb
+
markb); i
++
)
d[t
++
]
=
0
;
}

else

{

for
(i
=
La ; i
<
La
+
(Lb
-
markb
-
La
+
marka); i
++
)
c[s
++
]
=
0
;
}
Add();
}

int
sign
=
Lb;

int
LL
=
strlen(b);

int
g
=
0
;

for
( i
=
0
; i
<
Lb ; i
++
)
if
(b[i]
==
'
.
'
) sign
=
i;

for
(i
=
0
;i
<
sign;i
++
)
f[g
++
]
=
b[i]
-
'
0
'
;

for
(i
=
sign
+
1
; i
<=
sign
+
16
; i
++
) f[g
++
]
=
b[i]
-
'
0
'
;

int
flag
=
0
,k
=
0
;

for
(i
=
g
-
2
;i
>=
0
;i
--
)
{

if
(f[i
+
1
]
>
4
)
{
f[i]
=
(f[i]
+
1
+
flag)
%
10
;
flag
=
(f[i]
+
1
+
flag)
/
10
;
}

else

break
;
}

if
(flag) cout
<<
flag;

for
(i
=
0
;i
<
sign;i
++
)
{
cout
<<
f[i];
}
cout
<<
"
.
"
;

for
(i
=
sign;i
<
sign
+
12
;i
++
)
cout
<<
f[i];
cout
<<
endl;
}

return

0
;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: