using System;publicclassXbonacci{publicdouble[]Tribonacci(double[] s,int n){double[] res =newdouble[n];
Array.Copy(s, res, Math.Min(3, n));for(int i =3; i < n; i++)
res[i]= res[i -3]+ res[i -2]+ res[i -1];return n ==0?newdouble[]{0}: res;}}
答案2:
using System.Linq;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){if(n ==0){returnnewdouble[]{0};}var result =newdouble[n];for(var i =0; i < n; i++){
result[i]= i <3? signature[i]: result.Skip(i -3).Take(3).Sum();}return result;}}
答案3:
using System;using System.Collections.Generic;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){// wrong test in kataif(n ==0)returnnewdouble[]{0.0};
List<double> result =newList<double>();for(int i=0; i<n && i<3; i++){
result.Add(signature[i]);}for(int i=3; i<n; i++){
result.Add(result[i-3]+result[i-2]+result[i-1]);}return result.ToArray();}}
答案4:
using System;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){if(n ==0)returnnewdouble[]{0.0};double[] answer =newdouble[n];if(n <3){
Array.Copy(signature, answer, n);return answer;}
Array.Copy(signature,answer,3);for(int i =3; i < answer.Length; i++){
answer[i]= answer[i-1]+ answer[i-2]+ answer[i-3];}return answer;}}
答案5:
using System.Linq;using System.Collections.Generic;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){var sequence =newList<double>(signature);for(int i =3; i < n; i++)
sequence.Add(sequence[i -3]+ sequence[i -2]+ sequence[i -1]);return n ==0?newdouble[]{0}: sequence.Take(n).ToArray();}}
答案6:
publicclassXbonacci{publicdouble[]Tribonacci(double[] a,int n){var res =newSystem.Collections.Generic.List<double>(a);for(int i =3; i < n; i++)
res.Add(res[i -1]+ res[i -2]+ res[i -3]);return(n ==0)?newdouble[]{0.0d}: res.GetRange(0,n).ToArray();}}
答案7:
using System.Collections.Generic;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){var rs=newList<double>(signature);for(int i=3;rs.Count<n;i++) rs.Add(rs[i-1]+rs[i-2]+rs[i-3]);return(n==0)?newdouble[]{0}:(n==1)?newdouble[]{rs[0]}:(n==2)?newdouble[]{rs[0],rs[1]}:rs.ToArray();}}
答案8:
using System.Collections.Generic;using System;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){
List<double> terms =newList<double>(signature);for(int i =0; i < n-(signature.Length); i++){
terms.Add(terms[i]+terms[i+1]+terms[i+2]);}if(n <3){for(int i =0; i < Math.Abs(n-3);i++){
terms.RemoveAt(terms.Count-1);}}return terms.ToArray();}}
答案9:
using System;publicclassXbonacci{publicdouble[]Tribonacci(double[] sig,int n){if(n ==0)returnnewdouble[0];double[] seq =newdouble[n];for(int i =0; i < n; i++){if(i <3) seq[i]= sig[i];else seq[i]= seq[i-1]+ seq[i-2]+ seq[i-3];}return seq;}}
答案10:
using System.Collections.Generic;publicclassXbonacci{publicdouble[]Tribonacci(double[] signature,int n){double[] result =newdouble[0];if(0!= n){
result =CalculateTribonacciSeries(signature, n);}return result;}privatestaticdouble[]CalculateTribonacciSeries(double[] signature,int n){
List<double> resultList =newList<double>();if(n <3){for(int i =0; i < n; i++){
resultList.Add(signature[i]);}}else{
resultList.AddRange(signature);for(int indexOfElement =0; indexOfElement < n - signature.Length; indexOfElement++){var calculatedNewElement = resultList[indexOfElement]+ resultList[indexOfElement +1]+ resultList[indexOfElement +2];
resultList.Add(calculatedNewElement);}}return resultList.ToArray();}}
Tribonacci序列【难度:2级】:答案1:using System;public class Xbonacci{ public double[] Tribonacci(double[] s, int n) { double[] res = new double[n]; Array.Copy(s, res, Math.Min(3, n)); ...