问个很奇怪的数字筛选问题 本帖最后由 xyf12303 于 2012-04-19 23:38:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哈哈,没有理解程序照着改就和变魔术一样。知道为什么相减就可以么,相加为什么不可以么?给你修改后的程序,自己琢磨吧:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string condition = "6"; var result = Enumerable.Range(0, 1000) .Select(x => x.ToString().PadLeft(3, '0')) .Where(x => new int[] { (x[0] + x[1] - 2 * '0') % 10, (x[0] + x[2] - 2 * '0') % 10, (x[1] + x[2] - 2 * '0') % 10 } .Any(y => condition.Contains(y.ToString()))); Console.WriteLine(string.Join(", ", result)); } }} 本帖最后由 caozhy 于 2012-04-20 01:00:12 编辑 还是没弄明白,为什么相加的情况下每个X[]要减去一个'0'后再相加才是我要的结果呢?请caozhy大哥教教小弟! 因为 x[0] 是 char 类型,不是数字。char类型的值是对应数字的ascii码值。但是 '0' 和 '9' 的 ascii 值相差是正确的,相加就要减掉两倍 '0' 对应 ascii。 因为 x[0] 是 char 类型,不是数字。char类型的值是对应数字的ascii码值。但是 '0' 和 '9' 的 ascii 值相差是正确的,相加就要减掉两倍 '0' 对应 ascii。 那类似这样的取余之后的数该怎么处理?试了好几天没弄出来,所谓的取余 如下比如237,头两位对5取余后相加,2%5+3%5=5再比如256,头两位对5取余后相加,2%5+5%5=2转成char型对应的ascii后怎么处理以上这种取余的情况?减多少?感觉每个固定值好减的 下面这种情况,用了lock的多线程还算多线程吗? ShowDialog问题(50分)不够可以加分(急) 关于字符串解析问题 OleDbDataReader的关闭的问题 C#入门经典3第10章的练习做不来.求救! 如何用Midi(c#)来模拟萨克斯的音效? 超级难 求解方法和实例 和数据库相关 最好用asp(c#).net 实现 Effective C# 中文版改善C#程序的50种方法 完全版 robin提供 学C#的朋友留下QQ,一起努力了!!!!!!!!! 高手求助:如何减少刷新 C#&&运算 关于C#中正则表达式的问题
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string condition = "6";
var result = Enumerable.Range(0, 1000)
.Select(x => x.ToString().PadLeft(3, '0'))
.Where(x => new int[] { (x[0] + x[1] - 2 * '0') % 10, (x[0] + x[2] - 2 * '0') % 10, (x[1] + x[2] - 2 * '0') % 10 }
.Any(y => condition.Contains(y.ToString())));
Console.WriteLine(string.Join(", ", result));
}
}
}
那类似这样的取余之后的数该怎么处理?试了好几天没弄出来,所谓的取余 如下
比如237,头两位对5取余后相加,2%5+3%5=5
再比如256,头两位对5取余后相加,2%5+5%5=2
转成char型对应的ascii后怎么处理以上这种取余的情况?减多少?感觉每个固定值好减的