标签:
昨天晚上看了一道逻辑题:一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数。题目后面写着,有人看了几分钟便给出了答案。我很好奇,此人是如何解答的。
我自己先琢磨了下,拿笔算了半天,最后一个巧合的情况下,得到了答案。此题的一个关键且明显的推论是:能被5除余3的数,肯定最后一位是3或者8。那么接下来怎么推呢?我从网上搜集了答案。
1 List<int> numbers = new List<int>(); 2 //最简单,最自然的做法 3 for (int i = 1700; i <= 1800; i++) 4 { 5 if (i % 5 == 3 && i % 7 == 4 && i % 11 == 6) 6 { 7 numbers.Add(i); 8 } 9 } 10 11 //另外一种求解,个位为3或者8的数分别循环 12 for (int i = 1703; i <=1793; i=i+10) 13 { 14 if (i % 7 == 4 && i % 11 == 6) 15 { 16 numbers.Add(i); 17 } 18 } 19 for (int i = 1708; i <= 1798; i = i + 10) 20 { 21 if (i % 7 == 4 && i % 11 == 6) 22 { 23 numbers.Add(i); 24 } 25 } 26 27 //另外一种风格,把个位为3或者8的数合起来循环,程序简洁 28 29 for (int i = 1703; i <=1798; i=i+5) 30 { 31 if (i % 7 == 4 && i % 11 == 6) 32 { 33 numbers.Add(i); 34 } 35 } 36 37 foreach (var n in numbers) 38 { 39 Console.WriteLine(n.ToString()); 40 }
朋友们,还有更简单的办法吗?
一个自然数在1700和1800之间,且被5除余3,被7除余4,被11除余6,求符合条件的数
标签:
原文地址:http://www.cnblogs.com/wangqiang3311/p/5917867.html