算法学习
C++ 及算法
C++博客
首页
新随笔
联系
管理
Pku 1011 Exponentiation
#include
<
stdio.h
>
#include
<
stdlib.h
>
#include
<
string
.h
>
int
result[
500
];
char
str[
50
];
int
n;
int
len;
int
s;
int
relen;
void
print()
{
int
i
=
0
;
while
( result[i]
==
0
) i
++
;
int
tt
=
len
*
n;
int
left
=
500
-
tt;
if
( relen
*
n
>
500
-
i
&&
tt
>
500
-
i ) i
-=
( relen
*
n
-
500
+
i );
for
( ; i
<
left;
++
i ) printf(
"
%d
"
, result[i] );
if
( i
<
499
) printf(
"
.
"
);
for
( ; i
<
500
;
++
i ) printf(
"
%d
"
, result[i] );
printf(
"
\n
"
);
}
void
multify()
{
for
(
int
i
=
0
; i
<
500
;
++
i )
result[i]
*=
s;
for
(
int
i
=
499
; i
>
0
; i
--
)
{
result[i
-
1
]
+=
result[i]
/
10
;
result[i]
%=
10
;
}
}
int
main()
{
while
( scanf(
"
%s%d
"
,str,
&
n)
!=
EOF )
{
int
sum
=
0
, i
=
0
;
while
( str[i]
!=
'
.
'
)
{ sum
=
sum
*
10
+
str[i]
-
'
0
'
; i
++
; }
i
++
;
len
=
0
;
for
(
int
j
=
i; j
<
strlen(str);
++
j )
{
bool
isok
=
false
;
for
(
int
t
=
j; t
<
strlen(str);
++
t )
if
( str[t]
!=
'
0
'
)
{ isok
=
true
;
break
; }
if
( isok )
{ sum
=
sum
*
10
+
str[j]
-
'
0
'
; len
++
; }
else
break
;
}
i
=
499
; s
=
sum; relen
=
0
;
memset( result,
0
,
sizeof
(result) );
while
( sum )
{
result[i
--
]
=
sum
%
10
; relen
++
;
sum
/=
10
;
}
for
(
int
j
=
1
; j
<
n;
++
j ) multify();
print();
}
return
0
;
}
posted on 2008-10-28 22:45
Darren
阅读(169)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
动态规划(13)
数据结构(11)
搜索(9)
图论(10)
未分类(6)
ACMers
搜索
积分与排名
积分 - 109770
排名 - 230
最新随笔
1. 换个博客,重新开始学习。。。
2. pku 1691 Painting A Board 状态压缩DP
3. HDU 1255
4. PKU 1151
5. 2009年ACM-ICPC亚洲区预选赛共设十五个赛区如下(按现场赛日期排序)
6. acmer必看的26个对acm态度
7. ZJU 3228 Searching the String ( AC 自动机 )
8. Pku 3169 Layout
9. Pku 1986 Distance Queries
10. Pku 1276 Cash Machine
最新评论
1. re: AVL树的插入和删除操作
评论内容较长,点击标题查看
--jasonkent27@163.com