这个题就是用一个递归转化数字。10以下的不用转换。
#include<iostream>
using namespace std;
int k;
int ff(int a)
{
int sum=1;
for(int i=0;i<a;i++)
sum*=10;
return sum;
}
void convert(int a)
{
if(k/ff(a)==0)
return ;
else
{
if(k%ff(a)>=ff(a)/2)
k=k/ff(a)+1;
else
k=k/ff(a);
k*=ff(a);
convert(a+1);
}
}
int main()
{
int n;
cin>>n;
while(n--)
{
cin>>k;
if(k<10)
{
cout<<k<<endl;
continue;
}
convert(1);
cout<<k<<endl;
}
return 0;
}
posted on 2010-08-16 11:01
崔佳星 阅读(850)
评论(0) 编辑 收藏 引用