作者 Anonymous [actionscript] 2007-08-29 11:21 (点击下载) (原始帖子: Anonymous 在 2007-08-29 11:20 被修改)) (显示不同)

  1. 4.数列
  2. (sequence.pas/c/cpp)
  3.  
  4. 【问题描述】
  5. 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
  6. 1349101213,…
  7. (该序列实际上就是:303130+313230+3231+3230+31+32,…)
  8. 请你求出这个序列的第N项的值(用10进制数表示)。
  9. 例如,对于k=3,N=100,正确答案应该是981
  10. 【输入文件】
  11. 输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开:
  12. k N
  13. (k、N的含义与上述的问题描述一致,且3≤k≤1510≤N≤1000)。
  14. 【输出文件】
  15. 输出文件sequence.out 为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。
  16. 【输入样例】
  17. 3 100
  18. 【输出样例】
  19. 981
  20.  
  21. program sequence;
  22. var
  23. n,k,m:longint;
  24. function f(n:longint):extended;
  25. begin
  26. if n = 0 then
  27. exit (0)
  28. else
  29. exit (f(n div 2) * k + n mod 2);
  30. end;
  31. begin
  32. assign(input,'sequence.in');
  33. assign(output,'sequence.out');
  34. reset(input);rewrite(output);
  35. readln(k,n);
  36. writeln(f(n):0:0);
  37. close(output);
  38. end.

提交下面的校正或者修改. (点击这里开始一个新的帖子)
姓名: 在 cookie 中记住我的名字

屏幕抓图:(jpeg 或 png)