http://poj.youdao.com/nanti/
题目编号 | 标题 | 通过率 | 通过人数 | 提交次数 | |
A | A + B | 12% | 1608 | 9483 | |
B | Power | 7% | 406 | 4880 | |
C | Sibonacci | 4% | 80 | 2452 |
-
描述
- 计算a加b。 输入
-
一行,用空格分开的两个整数a和b。
其中0≤a, b≤10000。
输出
- 一个整数,为a加b的和。 样例输入
-
1 2
样例输出
-
3
#include
<
stdio.h
>
int main()
{
long a,b;
scanf( " %d%d " , & a, & b);
printf( " %d " ,a + b);
return 0 ;
}
int main()
{
long a,b;
scanf( " %d%d " , & a, & b);
printf( " %d " ,a + b);
return 0 ;
}
B:Power
-
时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
- 计算a的b次方对9907取模的值。 输入
-
第一行有一个正整数T,表示有T组测试数据。
接下来T行,每行是一组测试数据,包含两个整数a和b。
其中T<=10000, 0 <=a,b < 2^31。
输出
- 有T行,依次输出每组数据的结果。 样例输入
-
3
1 2
2 3
3 4
样例输出
-
1
8
81
代码
#include
<
stdio.h
>
long mod( long a, long b, long c)
{
if (a >= c)
return mod(a % c,b,c);
if (a == 0 )
return 0 ;
if (a == 1 )
return 1 % c;
if (b == 0 )
return 1 % c;
if (b == 1 )
return a % c;
long b1 = b / 2 ;
long x = mod(a, b1, c);
if (b % 2 )
{
return (x * x * (a % c)) % c;
}
else
return (x * x) % c;
}
int main()
{
long T, a,b;
scanf( " %d " , & T);
for ( long i = 0 ; i < T; i ++ )
{
scanf( " %d%d " , & a, & b);
printf( " %d\n " ,mod(a,b, 9907 ));
}
return 0 ;
}
long mod( long a, long b, long c)
{
if (a >= c)
return mod(a % c,b,c);
if (a == 0 )
return 0 ;
if (a == 1 )
return 1 % c;
if (b == 0 )
return 1 % c;
if (b == 1 )
return a % c;
long b1 = b / 2 ;
long x = mod(a, b1, c);
if (b % 2 )
{
return (x * x * (a % c)) % c;
}
else
return (x * x) % c;
}
int main()
{
long T, a,b;
scanf( " %d " , & T);
for ( long i = 0 ; i < T; i ++ )
{
scanf( " %d%d " , & a, & b);
printf( " %d\n " ,mod(a,b, 9907 ));
}
return 0 ;
}
C:Sibonacci
-
时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
菲波那切数列可以用下列的式子表示:
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) (n>=3)
现在我们根据这个规则定义另一种数列 命名为"辛波那切数列", 它是这样定义的:
s(x)=0 (x<0)
s(x)=1 (0<=x<1)
s(x)=s(x-1)+s(x-3.14) (x>=1)
现在需要计算出s(x) MOD 1000000007的值。
输入
-
第一行有一个正整数T表示有T组测试数据。
接下来T行,每行包含一个数x。
其中 T<=10000, -1000.0<=x<=1000.0
输出
- 有T行,依次输出每组数据的结果。 样例输入
-
3
-1
0.667
3.15
样例输出
-
0
1
2
代码
//
http://topic.csdn.net/u/20080426/15/1f5a0104-9f7c-49b3-80da-391596186259.html
#include < stdio.h >
#define MAXN 100000
int a[MAXN];
int main()
{
int t,i,k;
double x;
for (i = 0 ;i < 314 ;i ++ )
{
a[i] = 1 ;
}
for (i = 314 ;i < MAXN;i ++ )
{
a[i] = a[i - 100 ] + a[i - 314 ];
a[i] %= 1000000007 ;
}
scanf( " %d " , & t);
while (t -- )
{
scanf( " %lf " , & x);
if (x < 0 )
{
printf( " 0\n " );
continue ;
}
x *= 100 ;
k = ( int )(x + 0.000001 );
printf( " %d\n " ,a[k]);
}
return 0 ;
}
#include < stdio.h >
#define MAXN 100000
int a[MAXN];
int main()
{
int t,i,k;
double x;
for (i = 0 ;i < 314 ;i ++ )
{
a[i] = 1 ;
}
for (i = 314 ;i < MAXN;i ++ )
{
a[i] = a[i - 100 ] + a[i - 314 ];
a[i] %= 1000000007 ;
}
scanf( " %d " , & t);
while (t -- )
{
scanf( " %lf " , & x);
if (x < 0 )
{
printf( " 0\n " );
continue ;
}
x *= 100 ;
k = ( int )(x + 0.000001 );
printf( " %d\n " ,a[k]);
}
return 0 ;
}
最近的提交
题目 | 结果 | 内存 | 耗时 | 编程语言 | 提交时间 |
C: Sibonacci | Accepted | 720kB | 10ms | G++ | 2010-05-24 22:53:31 |
B: Power | Accepted | 276kB | 10ms | G++ | 2010-05-24 22:40:27 |
A: A + B | Accepted | 276kB | 0ms | G++ | 2010-05-24 22:19:20 |