zoukankan
html css js c++ java
斐波那契数列 二分法 取后四位 PKU 3070
Code
#include
<
iostream
>
using
namespace
std;
int
ans[
2
][
2
];
int
mid[
2
][
2
];
void
init(
int
a[
2
][
2
],
int
b[
2
][
2
],
int
mark )
{
int
i, j, temp[
2
][
2
];
temp[
0
][
0
]
=
( a[
0
][
0
]
*
b[
0
][
0
]
+
a[
0
][
1
]
*
b[
1
][
0
] )
%
10000
;
temp[
0
][
1
]
=
( a[
0
][
0
]
*
b[
0
][
1
]
+
a[
0
][
1
]
*
b[
1
][
1
] )
%
10000
;
temp[
1
][
0
]
=
( a[
1
][
0
]
*
b[
0
][
0
]
+
a[
1
][
1
]
*
b[
1
][
0
] )
%
10000
;
temp[
1
][
1
]
=
( a[
1
][
0
]
*
b[
0
][
1
]
+
a[
1
][
1
]
*
b[
1
][
1
] )
%
10000
;
if
( mark
==
1
)
{
for
( i
=
0
; i
<
2
; i
++
)
{
for
( j
=
0
; j
<
2
; j
++
)
{
ans[i][j]
=
temp[i][j];
}
}
}
if
( mark
==
0
)
{
for
( i
=
0
; i
<
2
; i
++
)
{
for
( j
=
0
; j
<
2
; j
++
)
{
mid[i][j]
=
temp[i][j];
}
}
}
}
void
cal (
int
n )
{
while
( n )
{
if
( n
%
2
==
1
)
{
init ( ans, mid,
1
);
}
init ( mid, mid,
0
);
n
/=
2
;
}
}
int
main ()
{
int
n;
while
( scanf (
"
%d
"
,
&
n )
&&
n
!=
-
1
)
{
ans[
0
][
0
]
=
1
; ans[
0
][
1
]
=
0
; ans[
1
][
0
]
=
0
; ans[
1
][
1
]
=
1
;
mid[
0
][
0
]
=
1
; mid[
0
][
1
]
=
1
; mid[
1
][
0
]
=
1
; mid[
1
][
1
]
=
0
;
cal (n);
printf (
"
%d\n
"
, ans[
0
][
1
] );
}
return
0
;
}
查看全文
相关阅读:
hive学习
spark Streaming
spark sql
参考
数论基础
2020.07.17模拟3
2020.07.16模拟2
关于Linux环境下的对拍
2020.07.15模拟1
三体
原文地址:https://www.cnblogs.com/Knuth/p/1559841.html
最新文章
[CQOI2016]手机号码
[BZOJ3209]花神的数论题
[AHOI2009]同类分布
[CTSC2018]混合果汁
BZOJ 3514 Codechef MARCH14 GERALD07加强版
Qtree V
bzoj4036 / P3175 [HAOI2015]按位或
HDU 6036 Division Game
HDU 6057 Kanade's convolution
hdu 5552 Bus Routes
热门文章
HDU 6116 路径计数
HDU 5322 Hope
HDU 3516 Tree Construction
LG 11 月 月赛 II T4
java的多线程:线程基础
相似度计算方法
推荐系统学习
数仓学习1
maven打包 依赖jar与不依赖jar
hive2
Copyright © 2011-2022 走看看