使用C#.NET列举组合数前N项和

列举如下列所示的组合数前N项和,代码如下(递归方法里注意去重):

 1     static void Main(string[] args)
 2     {
 3         List<string> list = GetSumOfPermutation("abcde", 5).ToList();
 4         File.AppendAllLines(@"C:\Sample.txt", list,Encoding.UTF8);
 5     }
 6
 7     static IEnumerable<string> GetSumOfPermutation(string source, int maxCount)
 8     {
 9         string temp = string.Empty;
10         if (maxCount > 0)
11         {
12             maxCount = maxCount - 1;
13             for (int i = 0; i < source.Length; i++)
14             {
15                 foreach (var cur in GetSumOfPermutation(source, maxCount))
16                 {
17                     if (cur.Contains(source[i]))
18                         continue;
19                     temp = source[i] + cur;
20                     //Console.WriteLine(temp);
21                     yield return temp;
22                 }
23                 temp = source[i].ToString();
24                 //Console.WriteLine(temp);
25                 yield return temp;
26             }
27         }
28     }
时间: 2024-10-10 12:20:33

使用C#.NET列举组合数前N项和的相关文章

求f(k)=k^k(k=1...n)的前n项和

求f(k)=k^k(k=1...n)的前n项和. 程序实现: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> long long My_Mul_Sum(int *n)//封装了一个求k^k的前n项和的函数 { int k = 1; long long sum = 0;//定义为long long是为了防止数据较大,容易溢出 for (k = 1; k <= n; k++) { int count = 0, mul = 1;//count

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

package com.hanqi; public class Qiuhe { public static void main(String[] args) { // TODO 自动生成的方法存根 double sum=0,fenshu=0,a=1,b=2,c=0; for (int i = 0; i < 20; i++) { fenshu=b/a; c=a; a=b; b=a+c; sum+=fenshu; //System.out.println(fenshu); } System.out.

循环-26. 求给定序列前N项和之四

循环-26. 求给定序列前N项和之四(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后3位.题目保证计算结果不超过双精度范围. 输入样例: 10 输出样例: sum = 0.819 1 #incl

循环-21. 求交错序列前N项和

1 /* 2 * Main.c 3 * C21-循环-21. 求交错序列前N项和 4 * Created on: 2014年8月18日 5 * Author: Boomkeeper 6 ***********测试通过******** 7 */ 8 9 #include <stdio.h> 10 11 int main(void){ 12 13 float numerator = 1; 14 float denominator = 1; 15 16 int N = 0;//前N项和 17 flo

有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

题目描述 输入 N 输出 数列前N项和 样例输入 10 样例输出 16.48 代码:#include<stdio.h>int main(){    int i,N;    double c=0,a=2.0,b=1.0,t,sum=0;         scanf("%d",&N);    for(i=0;i<N;i++)    {           c=a/b;        sum=sum+c;        t=a;        a=a+b;     

码农谷 求前N项之和

题目描述 有一分数序列:2/1.3/2.5/3.8/5.13/8.21/13.......求出这个数列的前N项之和,保留两位小数. 输入描述 N 输出描述 数列前N项和 样例 输入: 10 输出: 16.48 第一次code: 使用递归: 1 import java.util.*; 2 import java.math.BigDecimal; 3 4 public class jisuanrong 5 { 6 public static double SimpleAdding(int num)

关于1/2,3/4,7/6,13/8,21/10...求出这个数列的前20项之和

double H= 0; double a = 1, b = 2;  因为初始值为1/2 int i = 0;前多少项 for (i = 0; i < 20; i++) { H+= a / b;//后一项的分子等于前一项的分子加分母 a +=b ; b +=2 ;分母是每个都要加2 } Console.WriteLine(H); Console.WriteLine(a); Console.WriteLine(b);

循环-28. 求给定序列前N项和之六

循环-28. 求给定序列前N项和之六(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 2^1 + 22 + 23 + ... 的前N项之和. 输入格式: 输入在一行中给出一个不超过30的正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的整数值S. 输入样例: 5 输出样例: sum = 62 1 #include<stdio.h> 2 #include<ma

循环-25. 求给定序列前N项和之三

循环-25. 求给定序列前N项和之三(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位.题目保证计算结果不超过双精度范围. 输入样例: 23 输出样例: sum = 2.549541 1 #include<