C# FOR循环 穷举问题

灵感来自于一道习题:编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法?我用FOR做了出来,如图1.... 灵感来自于一道习题:编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法?我用FOR做了出来,如图1.之后碰到了一一道这样的题:编一个程序,输入一个正整数n,把它转换为二进制数,并输出。从上一道题的启发,我想利用FOR循环 进行穷举,让2^n 的数 相加,哪些数相加能等于答案,就输出这个数(图2是二进制转十进制,现在我要使用的是这个方法的逆向思维.).谢了九个循环 然后把自己给干沉了,希望大神能指点迷津.当然我是要以我这个思路进行下去,哪怕没有实用价值,只是一个思路问题.(图3为现在的半成品)希望大神可以帮忙理清思路.万分感谢. 展开
 我来答
百度网友154139e
2016-11-01 · TA获得超过413个赞
知道小有建树答主
回答量:295
采纳率:50%
帮助的人:250万
展开全部
有内置的转换二进制的。Console.WriteLine(Convert.ToString(26, 2));

for确实太多了,如果可以改成递归吧。给个方法你,你在控制台下调用就行。返回的是个字符串。
static String ToBinary(Int32 num)
{
//求商
Int32 merchant = num / 2;
//求余数
Int32 remainder = num % 2;

if (merchant == 0)
{
return remainder.ToString();
}
else
{ //商数不为0,继续递归
return ToBinary(merchant) + remainder;
}
}
追问
谢谢,已经不再试图用FOR了,钻牛角尖了,今天正好学习到递归,您的方法很有用!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式