/ Vijos / 题库 / 数列 /

题解

149 条题解

  • 0
    @ 2009-07-19 00:06:36

    样例错了,3 10应改为3 100

    庆祝双星!!

    顶楼下的题解

  • 0
    @ 2009-07-18 16:36:52

    将N转化成2 进制,得到的数据看成k进制,接着转化成十进制

    program fjkl;

    var a:array[1..10]of integer;

    s,i,m,n,k:longint;

    begin

    readln(k,n);

    s:=0;

    while n0 do

    begin

    inc(s);

    a:=n mod 2;

    n:=n div 2;

    end;m:=0;

    for i:=s downto 1 do

    m:=m*k+a[i];

    writeln(m);

    end.

  • 0
    @ 2009-07-18 13:51:43

    用二进制的算法太高深了,牛叉

  • 0
    @ 2009-07-08 17:52:39

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    本人RP 10^10^10^10^1000000000000000000^100000000

    谢谢合作。。。。

  • 0
    @ 2009-07-08 17:49:45

    YYz在楼上

    我是预言家

    呵呵

  • 0
    @ 2009-07-08 14:37:33

    var

    a:array[1..50] of integer;

    dep:integer;

    procedure change(i:integer);

    var

    tmp,j:integer;

    t:array[1..50]of integer;

    begin

    fillchar(t,sizeof(t),0);

    tmp:=i;

    dep:=0;

    repeat

    inc(dep);

    t[dep]:=tmp mod 2;

    tmp:=tmp div 2;

    until tmp=0;

    for j:=1 to dep do

    a[j]:=t[j];

    end;

    procedure main;

    var

    i,n,k:integer;

    ans:longint;

    begin

    readln(k,n);

    change(n);

    ans:=0;

    for i:=dep downto 1 do

    ans:=ans*k+a[i];

    writeln(ans);

    end;

    begin

    main;

    end.

  • 0
    @ 2009-06-14 14:56:40

    先求第N个数最高次r,再加上第N-2^r个数,转化为求第r个数。

    用递归实现。

  • 0
    @ 2009-06-08 14:10:49

    找规律啦,用位运算算2^i

    program p1319;

    var k,n,tem,m,i,ans:longint;

    function work(x:longint):longint;

    var i:longint;

    begin

    work:=1;

    for i:=1 to x do work:=work*k;

    end;

    begin

    read(k,n);

    tem:=n;

    while tem>1 do

    begin

    inc(m);

    tem:=tem shr 1;

    end;

    for i:=0 to m do

    if not(odd((n-(1 shl i))div (1 shl i))) then inc(ans,work(i));

    writeln(ans)

    end.

  • 0
    @ 2009-06-08 09:05:35

    program p4;

    var

    k,i,j,n,t,p,h:longint;

    f:array [1..1000] of longint;

    begin

    read(k,n);

    f[1]:=1;

    f[2]:=k;

    j:=3; t:=2;

    i:=1;

    p:=2;

    while j

  • 0
    @ 2009-05-14 17:15:40

    var k,n,ans,x,r:longint;

    begin

    readln(k,n);

    ans:=0;

    x:=1;

    while n>0 do

    begin

    r:=n mod 2;

    n:=n div 2;

    ans:=ans+r*x;

    x:=x*k;

    end;

    if ans=0 then writeln(1)

    else writeln(ans);

    end.

  • 0
    @ 2009-05-03 12:47:30

    program shulie;

    var k,n,i,m,t:integer;

    a:array[0..9] of real;

    sum:real;

    procedure findm;

    begin

    if n=1 then m:=0

    else if n

  • 0
    @ 2009-09-12 17:12:35

    晕,题目有歧义。应该是3^0,3^1,3^0+3^1,3^2,3^0+3^2,

    3^1+3^2,3^0+3^1+3^2,…);

    还有明明题目上都是N=100,怎么一到测试数据就变成10了呢?

  • 0
    @ 2009-04-07 15:44:24

    program cyfooo;

    var

    a:array[0..10000] of integer;

    i,j,k,n:longint;

    t:double;

    begin

    readln(k,n);j:=0;

    repeat

    j:=j+1;

    a[j]:=n mod 2;

    n:=n div 2;

    until n=0;

    for i:=1 to 10000 do

    if a[i]=1 then t:=t+(exp(ln(k)*(i-1)));

    write(trunc(t));

    end.

  • 0
    @ 2009-03-07 20:32:57

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    #include "stdio.h"

    int main()

    {

    unsigned k,n,ans=0,w=1;

    scanf("%u%u",&k,&n);

    while(n>0)

    {

    ans+=w*(n%2);

    n=n/2;

    w*=k;

    }

    printf("%u",ans);

    return 0;

    }

  • 0
    @ 2009-02-14 21:18:03

    C语言:

    测试数据3 10,输出应为30.

    用itoa函数将n转化为2进制数,再当成k进制数,转化为10进制数.

    有问题,问问newdeng就知道.

  • 0
    @ 2009-01-04 17:01:37

    编译通过...├ 测试数据 01:答案正确... 0ms├ 测试数据 02:答案正确... 0ms├ 测试数据 03:答案正确... 0ms├ 测试数据 04:答案正确... 0ms├ 测试数据 05:答案正确... 0ms├ 测试数据 06:答案正确... 0ms├ 测试数据 07:答案正确... 0ms├ 测试数据 08:答案正确... 0ms├ 测试数据 09:答案正确... 0ms-------------------------Accepted 有效得分:100 有效耗时:0ms

    方法其实很简单,1,2,1,231,32,31,2,34.........找到第m个组合,若组合中的元素为a1,a2,a3...ai,那么total:=total+round(exp((ai-1)*ln(n)));累加起来得到的就是答案了;找第m个集合时要用到递归的思想,很简单,一个一维数组搞定,数组开到10呦;

    你走了我爱谁? -----上帝的眼泪

  • 0
    @ 2008-12-20 17:19:16

    #include

    using namespace std;

    int main() {

    int k,n,r,m;

    for(cin>>k>>n,m=0,r=1;n;m+=(n&1)*r,n>>=1,r*=k);

    return(cout

  • 0
    @ 2008-11-29 14:03:18

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    a:array[1..50]of integer;

    dep:integer;

    procedure change(i:integer);

    var

    tmp,j:integer;

    t:array[1..50]of integer;

    begin

    fillchar(t,sizeof(t),0);

    tmp:=i;

    dep:=0;

    repeat

    inc(dep);

    t[dep]:=tmp mod 2;

    tmp:=tmp div 2;

    until tmp=0;

    for j:=1 to dep do

    a[j]:=t[j];

    end;

    procedure main;

    var

    i,n,k:integer;

    ans:longint;

    begin

    readln(k,n);

    change(n);

    ans:=0;

    for i:=dep downto 1 do

    ans:=ans*k+a[i];

    writeln(ans);

    end;

    begin

    main;

    end.

    Flag    Accepted

    题号   P1319

    类型(?)   数论 / 数值

    通过   1862人

    提交   3045次

    通过率   61%

    难度   2

    提交 讨论 题解

  • 0
    @ 2008-11-27 20:11:31

    1次AC

    .......

    ......纪念28AC~~

  • 0
    @ 2008-11-13 15:37:30

    2进制!!!

    ---|---|---|---|---|---|---|---|---|-

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

信息

ID
1319
难度
1
分类
数论 | 其他 | 数学 点击显示
标签
递交数
2438
已通过
1608
通过率
66%
被复制
21
上传者