主题:POJ1019高手请进
请各位高手看下POJ的1019
#include<stdio.h>
#include<iostream>
using namespace std;
int c(int i)
{
int count=0;
while(i>0)
{
i/=10;
count++;
}
return count;
}
int main(void)
{
int a,i,t,n,e,p;
cin>>t;
while(t--)
{
cin>>n;
a=0;
p=0;
for(i=1;i<=32628 ;i++)
{
e=c(i)+a;
if(n-e<0)
{
p=i;
break;
}
a=e;
n=n-e;
}
if(n==0)
{
cout<<(p-1)%10<<endl;
continue;
}
for (i=1;i<=p;i++)
{
if(n-c(i) >= 0)
n -= c(i);
else
{
p = i;
break;
}
}
if(n==0)
p=(p-1)%10;
else
{
n=c(p)-n;
while(n--)
{
p/=10;
}
}
cout<<p<<endl[color=FF0000];//令这个输入为1[/color]
cout<<p%10<<endl;//[color=0000FF]令这个输入为2[/color]
}
return 0;
}
请问各位达人们我调试了很多数据但分不清1和2的区别在于哪里。。
#include<stdio.h>
#include<iostream>
using namespace std;
int c(int i)
{
int count=0;
while(i>0)
{
i/=10;
count++;
}
return count;
}
int main(void)
{
int a,i,t,n,e,p;
cin>>t;
while(t--)
{
cin>>n;
a=0;
p=0;
for(i=1;i<=32628 ;i++)
{
e=c(i)+a;
if(n-e<0)
{
p=i;
break;
}
a=e;
n=n-e;
}
if(n==0)
{
cout<<(p-1)%10<<endl;
continue;
}
for (i=1;i<=p;i++)
{
if(n-c(i) >= 0)
n -= c(i);
else
{
p = i;
break;
}
}
if(n==0)
p=(p-1)%10;
else
{
n=c(p)-n;
while(n--)
{
p/=10;
}
}
cout<<p<<endl[color=FF0000];//令这个输入为1[/color]
cout<<p%10<<endl;//[color=0000FF]令这个输入为2[/color]
}
return 0;
}
请问各位达人们我调试了很多数据但分不清1和2的区别在于哪里。。