1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※(注記) 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
Stopwatch sw1 = Stopwatch.StartNew();
int cnt = Enumerable.Range(1, 10000).Sum(k => k.ToString().Count(z => z == '8'));
sw1.Stop();
Console.WriteLine($"Elapsed MillSecond : {sw1.ElapsedMilliseconds}, Value : {cnt}");
Elapsed MillSecond : 4, Value : 4000
2016年11月23日 04:30
using System;
class Program
{
static void Main(string[] args)
{
int numberEightCount = 0;
for (int i = 1; i <= 10000; i++)
{
char[] digits = i.ToString().ToCharArray();
foreach (var aDigit in digits)
{
if (aDigit == '8')
{
numberEightCount++;
}
}
}
Console.WriteLine("numberEightCount = " + numberEightCount);
}
}
2014年09月25日 16:17
C#으로 작성했습니다. 7에서 9 milliseconds 정도 걸렸습니다.
using System.Linq;
public int CountEights(int n)
{
var sum = 0;
for (int i = 0; i <= n; i++)
sum += i.ToString().Count(e => e.ToString().Contains('8'));
return sum;
}
2015年03月17日 18:54
static void Main(string[] args)
{
Console.WriteLine(Answer(8,10000));
}
static int Answer(int findNum,int numMax)
{
string sum = "";
for (int i = 1; i <= numMax ; i++)
{
sum += i;
}
int answer = sum.Length - sum.Replace(findNum.ToString(), "").Length;
return answer;
}
static void Main(string[] args)
{
try
{
int count = 0;
char[] chArray = null;
for(int i = 0; i < 10000; i++)
{
chArray = i.ToString().ToCharArray();
foreach (var p in chArray)
{
if (p.Equals('8'))
{
count++;
}
}
}
Console.WriteLine(count);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadKey();
}
}
string strNum;
int cnt = 0;
for (int i = 1; i <= 10000; i++)
{
strNum = i.ToString();
foreach (char a in strNum)
{
if (a == '8') cnt++;
}
}
2017年05月23日 04:56
풀이 작성