using System;using System.Collections.Generic;using System.Linq;namespace Family
{publicstaticclassFindFamily{publicstaticlongFindIntruder(long n)=> Math.Abs(n).Digitize().Where(i => i !=5).Reverse().ToArray().Map(v => v.DefaultIfEmpty(1).Sum()%3==0? v.Numerize()* Math.Sign(n):-1);static IEnumerable<long>Digitize(thislong n){do{yieldreturn n %10;
n /=10;}while(n >0);}staticlongNumerize(this IEnumerable<long> digits)=>
digits.Aggregate((s, i)=> s *10+ i);static TResult Map<TSource,TResult>(thisTSource source,
Func<TSource, TResult> mapper)=>mapper(source);}}
答案5:
using System;using System.Linq;namespace Family{publicclassFindFamily{publicstaticlongFindIntruder(long n){string str =string.Concat(n.ToString().Where(x => x !='5'));if(str ==""|| str =="-")return-1;long l = Convert.ToInt64(str);return l %3==0? l :-1;}}}
答案6:
using System.Linq;usingstatic System.Convert;namespace Family
{publicclassFindFamily{publicstaticlongFindIntruder(long n){var lst = n.ToString().Where(e => e !='5').Aggregate("",(a, b)=> a + b);return lst.Replace("-","").Length ==0||ToInt64(lst)%3!=0?-1:ToInt64(lst);}}}
答案7:
using System.Linq;namespace Family{publicclassFindFamily{publicstaticlongFindIntruder(long n){int check =0;if(n <0){
n *=-1;
check =1;}string temp = n.ToString();
temp =string.Concat(temp.Where(x => x !='5'));if(temp =="")return-1;long res =long.Parse(temp);if(check ==1) res *=-1;return res %3==0? res :-1;}}}
答案8:
using System;namespace Family{publicclassFindFamily{publicstaticlongFindIntruder(long n){if(n ==0)return0;long n1 =0, mul =1, dig =0;while(n !=0){long r = n %10;if(r !=5&& r !=-5){
n1 += r * mul;
mul *=10;
dig++;}
n /=10;}if(dig !=0&& n1 %3==0)return n1;return-1;}}}
答案9:
using System;namespace Family{publicclassFindFamily{publicstaticlongFindIntruder(long n){//special case 0, since otherwise can't tell the difference between 0 and a number that is all 5s.if(n ==0)return0;long no_fives =0;long place =1;while(n !=0){long digit = n %10;if(digit !=5&& digit !=-5){
no_fives +=(digit * place);
place *=10;}
n /=10;}//if place == 1 then no non-5 digits were found. Since n == 0 was special-cased, return -1return(no_fives %3==0&& place >1)? no_fives :-1;}}}
答案10:
namespace Family {publicclassFindFamily{publicstaticlongFindIntruder(long n){string s=n.ToString().Replace("5","");if(s==""||s=="-")return-1;
n=long.Parse(s);return n%3==0?n:-1;}}}
入侵者分为3个家庭【难度:1级】:答案1:using System;namespace Family{ public class FindFamily { public static long FindIntruder(long n) { string h = n.ToString(); while (h.Contains('5')...