Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350822
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:27

#include
using namespace std;
int ii=0;
int att(int n)
{
int t1,t2,sum=0;
t1=n/10;
t2=n%10;

if(t1==0)
{
sum=sum+n;
ii++;
}
else
{
sum=sum+t2;
}
return sum;
}
int  aa(int n)//计算N的各个位数的和
{
int sum=0;
int f=n/10;
for(;f>=0,ii<1;f=n/10)
{
sum=sum+att(n);
n=n/10;
}
return sum;
}
int at(int n,int k,int j)
/*序列a(1),a(2),…,a(n)。对于i>1,a(i)是满足下面2个性质的最小正整数:
   (1) a(i) > a(i-1);
   (2) a(i) 的各位数字的和与K×a(i-1)的各位数字的和相等。
   例如,a1=1,k=2,n=6时,该序列的前6个元素是1,2,4,8,16,23。

编程任务:给定a1,k,n的值,计算该序列的第n项a(n)的值。
*/

{
int M=n+1;
int t=n;
int i=0;

while(i!=j)
{
if(aa(k*t)==aa(M))
{
cout< i++;
t=M;
M++;

}
else
{
M++;
}
}
return 0;
}

int main()
{
int j,k,n;
cin>>n;
cin>>k;
cin>>j;
at(n ,k, j);
cout< cout< return 0;
}


--------------------next---------------------

阅读(1169) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~