C#算法
- 韩信点兵算法(3个人站一排余2,5个人站一排余3,7个人站一排余5)
static void Main(string[] args) { //33余2 55余3 77余5 for(int i=0;i<1000;i++) { if(i%3==2&&i%5==3&&i%7==5) { Console.WriteLine("总人数是{0}", i); } } Console.ReadKey(); }
2.水仙花数:水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
static void Main(string[] args) { //水仙花数1^3 + 5^3+ 3^3 = 153 for (int i = 100; i < 1000; i++) { int bai = 0; int shi = 0; int ge = 0; int baiyushu = 0; bai =i/ 100; baiyushu = i % 100; shi = baiyushu / 10; ge = baiyushu % 10; if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) { Console.WriteLine("水仙花数:" + i ); } } Console.ReadKey(); }
3.相亲数
在数学中,有一些称为相亲相爱的数。真是所谓“你中有我,我中有你。”例如220和284,把220的全部约数(除掉220本身之外)统统都相加起来,其和就等于另一个数284;即 1+2+4+5+10+11+20+22+44+55+110=284
同样,把284的全部约数(除掉284本身)相加,其和等于220,即
1+2+4+71+142=220
for (int i = 1; i < 10000; i++) { for (int j = 1; j < 10000-1;j++ ) { if(j==GetAllSum(i) && i==GetAllSum(j) &&i!=j) { Console.WriteLine("{0} 和{1} 是一对相亲数:",i,j); } } } Console.ReadKey(); } /// <summary> /// 获取所有约数的和 /// </summary> /// <param name="i"></param> /// <returns></returns> private static int GetAllSum(int n) { int sum = 0; for (int i = 1; i < n;i++ ) { if(n%i==0) { sum = sum + i; } } return sum; }
posted on 2016-12-30 10:54 Charlene0603 阅读(191) 评论(0) 收藏 举报
浙公网安备 33010602011771号