简单有趣#157:计算三角形【难度:1级】:答案1:namespace myjinxin{ using System; public class Kata { public int CountingTriangles(int[] V){ int triangleCount = 0; if (V.Leng...
摘要由CSDN通过智能技术生成
简单有趣#157:计算三角形【难度:1级】:
答案1:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] V){int triangleCount =0;if(V.Length <3)return0;for(int i =0; i < V.Length-2; i++){for(int j = i+1; j < V.Length-1; j++){for(int h = j+1; h < V.Length; h++){if(V[i]<V[j]+V[h]&& V[j]<V[i]+V[h]&& V[h]<V[i]+V[j])
triangleCount++;}}}return triangleCount;}}}
namespace myjinxin {publicclassKata{publicintCountingTriangles(int[] V ){var result =0;for(int i =0; i < V.Length; i++){var a = V[ i ];for(int j = i +1; j < V.Length; j++){var b = V[ j ];for(int k = j +1; k < V.Length; k++){var c = V[ k ];if( a + b > c && b + c > a && a + c > b ){
result +=1;}}}}return result;}}}
答案4:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] V){int count =0;for(int i=0; i<V.Length-2; i++){for(int j=i+1; j<V.Length-1; j++){for(int k=j+1; k<V.Length; k++){if(CheckTriangle(V[i], V[j], V[k]))
count +=1;}}}return count;}publicstaticboolCheckTriangle(int a,int b,int c){return a + b > c && a + c > b && b + c > a;}}}
答案5:
using System.Collections.Generic;using System.Linq;namespace myjinxin
{publicclassKata{publicintCountingTriangles(int[] V){int result =0;var total = V.ToList();for(int i =0; i < total.Count; i++){var x = total[i];var exceptX =newList<int>(total);
exceptX = total.Skip(i +1).ToList();for(int j =0; j < exceptX.Count; j++){var y = exceptX[j];var exceptXY =newList<int>(exceptX);
exceptXY = exceptX.Skip(j +1).ToList();for(int k =0; k < exceptXY.Count; k++){var z = exceptXY[k];if(CanMakeTriangle(x, y, z)){
result +=1;}}}}return result;}privateboolCanMakeTriangle(int x,int y,int z){if(x >= y && x >= z && x < y + z){returntrue;}if(y >= z && y >= x && y < x + z){returntrue;}if(z >= y && z >= x && z < y + x){returntrue;}returnfalse;}}}
答案6:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] V){int tri_count =0;int[] sides =newint[3];for(int i =0; i < V.Length -2;++i){for(int j = i +1; j < V.Length -1;++j){for(int k = j +1; k < V.Length;++k){
sides[0]= V[i];
sides[1]= V[j];
sides[2]= V[k];
Array.Sort(sides);if(sides[2]< sides[0]+ sides[1]){++tri_count;}}}}return tri_count;}}}
答案7:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] v){int res =0;for(int i =0; i < v.Length -2; i++){for(int j = i +1; j < v.Length -1; j++){for(int k = j +1; k < v.Length; k++){if((v[i]< v[j]+ v[k])&&(v[j]< v[i]+ v[k])&&(v[k]< v[i]+ v[j])) res++;}}}return res;}}}
答案8:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] V){var count =0;for(int i =0; i < V.Length; i++){for(int j = i +1; j < V.Length; j++){for(int k = j +1; k < V.Length; k++){var a = V[i];var b = V[j];var c = V[k];if(a + b > c && a + c > b && b + c > a) count++;}}}return count;}}}
答案9:
namespace myjinxin
{publicclassKata{publicintCountingTriangles(int[] V){var counter =0;var i =0;var j =1;var k =2;while(true){if(IsTriangle(V[i], V[j], V[k]))
counter++;
k++;if(k >= V.Length){
j++;
k = j +1;if(k >= V.Length){
i++;
j = i +1;
k = j +1;if(k >= V.Length)break;}}}return counter;}privateboolIsTriangle(int i,int j,int k){return i + j > k && j + k > i && i + k > j;}}}
答案10:
namespace myjinxin
{using System;publicclassKata{publicintCountingTriangles(int[] V){var numberOfWays =0;
Array.Sort(V);for(int i =0; i <= V.Length -3; i++){for(int j = i +1; j <= V.Length -2; j++){for(int k = j +1; k <= V.Length -1; k++){if((V[i]+ V[j])> V[k]){
numberOfWays++;}}}}return numberOfWays;}}}
简单有趣#157:计算三角形【难度:1级】:答案1:namespace myjinxin{ using System; public class Kata { public int CountingTriangles(int[] V){ int triangleCount = 0; if (V.Leng...