#include <iostream>
using namespace std;
#define LIMIT 7
int main()
{
int input;
scanf("%d", &input);
// input = 100000;
int count = 0;
int index = 0;
char n1[LIMIT] = {0};
char n2[LIMIT] = {0};
for (int i = 1; i <= input; i++)
{
itoa(i, n1, 10);
itoa(i, n2, 8);
char temp;
index = 0;
while (index < LIMIT)
{
if (n1[index] == '7')
{
count++;
// printf("%s\n",n1);
break;
}
if (n2[index] == '7')
{
count++;
// printf("O\t%s\n",n2);
break;
}
index++;
}
}
printf("%d", count);
}
}
原问题中输入100000会返回30555,我输入100000会返回69445
不知道为什么,感觉是itoa用的不对?