usingstatic System.Math;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n)=>(number !=0|| n !=0)&&Abs(number).ToString().Sum(c => c -'0')*(((long)Pow(10,n))/9)==Abs(number);}
答案2:
using System;using System.Linq;publicclassKata{/// <summary>/// Returns a Boolean representing if a number with its digits concatenated an arbitrary number of times and summed is the same as the original number.</summary>/// <param name="number">int to be tested.</param>/// <param name="n">int which represents the number of times to concatenate each digit</param>publicstaticboolCheckConcatenatedSum(int number,int n){if(number <0) number =-number;if(n > number.ToString().Length)returnfalse;return number.ToString().Select(a =>int.Parse(newString(a,n))).Sum()== number;}}
答案3:
using System;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n){int sign = number <0?-1:1;string result =(sign * number).ToString();return sign * result.Select(x => Int64.Parse(newstring(x, n))).Sum()== number;}}
答案4:
using System;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n ){return
Convert.ToString( Math.Abs( number )).Select( d =>long.Parse(newstring( Enumerable.Repeat( d, n ).ToArray()))).Sum( i => i*Math.Sign( number ))== number;}}
答案5:
using System;using System.Linq;publicclassKata{/// <summary>/// Returns a Boolean representing if a number with its digits concatenated an arbitrary number of times and summed is the same as the original number.</summary>/// <param name="number">int to be tested.</param>/// <param name="n">int which represents the number of times to concatenate each digit</param>publicstaticboolCheckConcatenatedSum(int number,int n){char[] digits = Math.Abs(number).ToString().ToCharArray();string[] numbers =newstring[digits.Length];for(int i =0; i < digits.Length; i++){
numbers[i]=newString(digits[i], n);}return Math.Abs(number)== numbers.Select(x => Int64.Parse(x)).Sum();}}
答案6:
using System;using System.Collections.Generic;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n){int num = number;int sum =0;var cd =ConcatenatedDigits(DigitsList(num), n);foreach(var i in cd){if(number <0)
sum -= i;else
sum += i;}return number == sum;}publicstaticint[]DigitsList(int num){var lst =newList<int>();int number = Math.Abs(num);while(number >0){
lst.Add(number%10);
number /=10;}return lst.ToArray();}publicstaticint[]ConcatenatedDigits(int[] arr,int n){for(int i=0; i<arr.Length; i++){int x = arr[i];for(int j=1; j<n; j++){
x =(x*10)+ x%10;}
arr[i]= x;}return arr;}}
答案7:
using System;usingstatic System.Math;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n)=>(number !=0|| n !=0)&&Abs(number).ToString().Sum(c => c -'0')*(((long)Pow(10,n))/9)==Abs(number);}
答案8:
using System;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int number,int n){return Math.Abs(number)== Math.Abs(number).ToString().Sum(x =>long.Parse(string.Concat(Enumerable.Repeat(x, n))));}}
答案9:
usingstatic System.Math;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int nr,int n)=>(nr !=0|| n !=0)&&Abs(nr).ToString().Sum(c => c -'0')*(((long)Pow(10,n))/9)==Abs(nr);}
答案10:
using System;using System.Collections.Generic;using System.Linq;publicclassKata{publicstaticboolCheckConcatenatedSum(int nu,int n){Console.WriteLine(nu+" "+n);string str ="";int sum =0;char[] ar =(nu +"").ToCharArray();if(nu>0){foreach(var item in ar){for(int i =0; i < n; i++){ str += item;}
sum +=int.Parse(str);
str ="";}if(sum==nu){returntrue;}returnfalse;}if(nu <0){ar[0]='0';foreach(var item in ar){for(int i =0; i < n; i++){ str += item;}
sum -=int.Parse(str);
str ="";}if(sum == nu){returntrue;}returnfalse;}returnfalse;}}