콘솔에 입력을 입력 할 때 꽤 오랜 시간 동안이 문제에 봉착했습니다. 그러나 제출할 때 내 솔루션은 항상 테스트 # 3에 실패합니다. 입력 또는 출력). 문제는 여기 Timus입니다. 문제는 다음과 같습니다.바보 스퀘어 루트 퍼즐
문제는 너무 쉽습니다. 작성자가 그 문구를 작성하는 게으름이었습니다!
입력
입력 스트림은 정수 번호 (AI ≤ 1,018 0 ≤ AI)의 세트를 포함한다. 숫자는 공백과 줄 바꿈으로 구분됩니다. 입력 스트림의 크기는 256KB를 초과하지 않습니다.
당신은 출력의 제곱근을해야 첫 번째까지 마지막에서 각 번호 아이의 출력
. 각 제곱근은 소수점 이하 4 자리 이상의 별도 행에 인쇄해야합니다.
입력 :
1427 0
876652098643267843
5276538
출력 : 나는 또한 이후 네 소수점 이하 자릿수로 반올림 시도했습니다
using System;
using System.Collections.Generic;
using System.IO;
namespace ReverseRoot
{
class Program
{
static void Main(string[] args)
{
List<ulong> longs = new List<ulong>();
string current = "";
bool inNumber = false;
string input = Console.In.ReadToEnd();
for (int i = 0; i < input.Length; ++i)
{
char c = input[i];
if (inNumber && !char.IsDigit(c))
{
longs.Add(ulong.Parse(current));
inNumber = false;
current = "";
}
if (char.IsDigit(c))
{
inNumber = true;
current += c;
}
}
longs.Reverse(0, longs.Count);
foreach (ulong n in longs)
{
double p = (Math.Truncate(Math.Sqrt(n) * 10000.0))/10000.0;
Console.WriteLine("{0:F4}", p);
}
Console.ReadLine();
}
}
}
: 이것은 내 코드입니다
2297.0716
936297014.1164
0.0000
37.7757
문제의 문구는 다음과 같습니다.
foreach (ulong n in longs)
{
Console.WriteLine("{0:F4}", Math.Sqrt(n));
}
콘솔의 값 범위를 통해 숫자를 시도했지만 그 이유는 확실하지 않습니다. 이 사이트에서 출력 먹으 렴을 제공
당신은 간단하게 코드가 너무 사람이 해결하려고하는 문제를 설명한다 귀하의 질문을 이해하기 위해 해당 사이트를 방문 할 필요가 없습니다. 간단한 입력과 예상되는 출력의 예도 도움이 될 것입니다. – hatchet
마지막 긴 값 뒤에 공백이나 줄 바꿈이 없을 때 코드가 실패한 것 같습니다. 당신의 논리는'! char.IsDigit (c)'가 값을 얻는 것을 요구하기 때문에 코드는 마지막 값을 구문 분석하지 않습니다. – hatchet
좋은 catch 도끼, 그건 사실이야! –