下面这个代码为什么在oj平台上提交只能通过40%的样例,真是想破脑袋也没想出来。谢谢各位了。
#include<stdio.h>
long long arr[1000000];
int main()
{
int n;
while(~scanf("%d",&n)){
for(int i=0,j=1;i<n;j++)
{
if(j%6==0||j%10==6||(j%100-j%10)/10==6||(j%1000-j%100)/10==6)
{arr[i]=j;
i++;}
}
printf("%lld\n",arr[n-1]);}
return 0;
}
#include <stdio.h>
long long get_luck_number(int n);
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
printf("%lld\n", get_luck_number(n));
}
}
long long get_luck_number(int n)
{
long long luck_number = 1;
int count = 0;
for (luck_number = 1; count < n; luck_number++)
{
if (luck_number % 6 == 0)
{
count++;
}
else if (luck_number % 10 == 6)
{
count++;
}
else if ((luck_number % 100 - luck_number % 10) / 10 == 6)
{
count++;
}
else if ((luck_number % 1000 - luck_number % 100) / 100 == 6)
{
count++;
}
else if ((luck_number % 10000 - luck_number % 1000) / 1000 == 6)
{
count++;
}
else if ((luck_number % 100000 - luck_number % 10000) / 10000 == 6)
{
count++;
}
else if ((luck_number % 1000000 - luck_number % 100000) / 100000 == 6)
{
count++;
}
}
return --luck_number;
}
1<=n<=1000000
写这个还挺麻烦的