锋钢锯条做刀烧水,长了w数大还是短了w数大

电动车控制器的W数比电机的大有问题吗?_百度知道电动车48v20a电机用350w的好还是用500w的好,是不是电机w数越大跑路越近_百度知道给定一个带通配符问号的数W,问号可以代表任意一个一位数字。
再给定一个整数X,和W具有同样的长度。
问有多少个整数符合W的形式并且比X大?
输入格式
多组数据,每组数据两行,第一行是W,第二行是X,它们长度相同。在[1..10]之间.
输出格式
每行一个整数表示结果。
分析如下:
先用穷举法来分析几种可能情况
如果W第一个通配符之前的数字大于X,则通通配符可以是任意数字,因此W比X大的个数就是10的n次方(通配符个数n)
如果W第一个通配符之前的数字小于x,则W不可能比X大,结果为0
如果W第一个通配符之前的数字等于x,这时,只有W的通配符比X相应位置的数字大的情况,才有可能使w比X大,因此通配符前面的数字不起任何作用,
我们可以把它简化为
此时可以得到结果为4
分析完了第一个通配符我们来分析第二个通配符,这时我们发现,只有第一个通配符前面没有数字或数字和x相等的情况下,我们才需要考虑第二个通配符。
并且情况很相似,只有第一个通配符和x相同位置中的数字相等的情况,我们才需要对第二个通配符进行分析,
否则,跟上面的情况类似,
如果第一个通配符大于x中的数字,则W比X大的个数就是10的n-1次方(通配符个数n)
如果第一个通配符小于x中的数字,则W比X大的个数就是0
以此类推,就可以得出W比X大总个数
c#示例代码如下:
/// &summary&
/// 使用算法推算w大于x的个数
/// &/summary&
/// &param name=&string_W&&&/param&
/// &param name=&string_X&&&/param&
/// &returns&&/returns&
private int getNum(string string_W, string string_X)
if (int.Parse(string_W.Replace('?', '9')) &= int.Parse(string_X))
int firstCharIndex = -1;//第一个通配符的索引
int secondCharIndex = -1;//第二个通配符的索引
int value_x = 0;////字符串string_X中在第一个通配符相应位置的数字的值
int charCount = 0;//通配符数量
//找到第一个通配符的索引和第二个通配符的索引
for (int i = 0; i & string_W.L i++)
if (string_W[i] == '?')
charCount++;
if (firstCharIndex == -1)
value_x = int.Parse(string_X[i].ToString());
firstCharIndex =
if (firstCharIndex != -1 && secondCharIndex == -1)
secondCharIndex =
//第一个通配符前面有数字,并且与x不相等的情况
if (firstCharIndex & 0)
int formerValue_W = int.Parse(string_W.Substring(0, firstCharIndex));
int formerValue_X = int.Parse(string_X.Substring(0, firstCharIndex));
if (formerValue_W & formerValue_X)
//如果之前的数据W&X,则=通配符的个数n
return (int)Math.Pow(10, charCount);
else if (formerValue_W & formerValue_X)
//如果第一个通配符之前的数相等或没有数字,判断通配符和X字符的大小情况
if (charCount & 1)
//递归计算出结果
第一个通配符大于x的情况+等于x时进行递归推算
return (9 - value_x) * (int)Math.Pow(10, charCount - 1) +
getNum(string_W.Substring(firstCharIndex + 1), string_X.Substring(firstCharIndex + 1));
//只有一个通配符,判断当通配符与x相同位置的整数相同时,w和x的大小
int W = int.Parse(string_W.Replace('?', string_X[firstCharIndex]));
int X = int.Parse(string_X);
if (W & X)
return (9 - value_x) + 1;
return (9 - value_x);
/// &summary&
/// 使用常规逻辑遍历计算w大于x的个数
/// &/summary&
/// &param name=&string_W&&&/param&
/// &param name=&string_X&&&/param&
/// &returns&&/returns&
private int CalNum(string string_W, string string_X)
int value_x = int.Parse(string_X);
string[] parms_w = string_W.Split('?');
string[] charDic = new string[] { &a&, &b&, &c&, &d&, &e&, &f&, &g&, &h&, &l&, &m& };//最多10个
//字符字典,用于依次替换string_W中的通配符,以方便递归方法中的遍历
string_W = &&;
for (int i = 0; i & parms_w.L i++)
string_W += parms_w[i] + charDic[i];
string_W = string_W.Substring (0,string_W .Length -1);
int charCount = parms_w.Length - 1;
return CalNum_sub(string_W, value_x, charDic, charCount); ;
/// &summary&
/// CalNum方法中用到的递归计算
/// &/summary&
/// &param name=&string_W&&&/param&
/// &param name=&value_x&&&/param&
/// &param name=&charDic&&&/param&
/// &param name=&charCount&&&/param&
/// &returns&&/returns&
private int CalNum_sub(string string_W, int value_x, string[] charDic, int charCount)
int total = 0;
for (int k = 0; k & 10; k++)
string temp = string_W.Replace(charDic[charCount - 1], k.ToString());
if (charCount & 1)
total += CalNum_sub(temp, value_x, charDic, charCount - 1);
if (int.Parse(temp) & value_x)
/// &summary&
/// 测试方法
/// &/summary&
/// &param name=&string_W&&&/param&
/// &param name=&string_X&&&/param&
/// &returns&&/returns&
private string testNum(string string_W, string string_X)
Stopwatch watch = new Stopwatch();
watch.Start();
int v1 = CalNum(string_W, string_X);
watch.Stop();
string t1 = watch.ElapsedTicks.ToString();
watch.Reset();
watch.Start();
int v2 = getNum(string_W, string_X);
watch.Stop();
string t2 = watch.ElapsedTicks.ToString();
return (v1 + &--& + v2 + &\r\n& + t1 + &--& + t2).ToString();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:155977次
积分:2857
积分:2857
排名:第9059名
原创:110篇
转载:105篇
评论:34条
(1)(2)(1)(2)(7)(2)(1)(23)(2)(1)(9)(2)(5)(9)(19)(6)(17)(21)(3)(20)(28)(1)(3)(2)(1)(15)(9)(4)(4)w二次函数的最大和最小值_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
w二次函数的最大和最小值
上传于||暂无简介
大小:286.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢电阻的瓦数大小跟电路有什么关系_百度知道}

我要回帖

更多关于 锋钢锯条做刀 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信