用C语言编程:从1到300的自然数中,完全不含有数字3的有多少个?将所有含3的数字

 我来答
luwrong110
2010-10-31 · 超过20用户采纳过TA的回答
知道答主
回答量:33
采纳率:100%
帮助的人:45.3万
展开全部
原理很简单,只要把数的每位取出,判断是否为3即可。
#include <stdio.h>

void main()
{
int k=0,a,b,c;
int i=300;

for(i=0;i<300;i++)
{
a=(int)i/100;
b=((int)i/10)%10;
c=i%10;
if((a!=3)&&(b!=3)&&(c!=3))
k++;
}

printf("%d\n",k);
}
答案为243,用数学验证过了,对的。
9+C8(1)*C9(1)+C2(1)*C9(1)*C9(1)=243
不知道你学了排列组合没得。这就是个例子。
草红样
2010-10-31 · TA获得超过240个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:157万
展开全部
#include <stdio.h>
int main()
{
int i, k=0;
for(i=1;i<=300;i++)
{
int t=i,flag=1;
for(;t!=0;t/=10)
{
if(3==t%10)
{
flag=0;
break;
}
}
if(flag)
{
printf("%d ",i);
k++;
}
}
printf("\ncount: %d\n",k);
getchar();
}

其实上面那位同学的做法没错,似乎i的初始值是1吧,我的方法可扩展性更好些,如果范围更大的话
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆之刀人辞0V
2010-10-31 · TA获得超过331个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:69.8万
展开全部
很简单
int Count=0;
for(int 1=0;i<=300;i++)
{
CString str;
str.Format("%d",i);
if(str.Find("3");
Coun++;
}

ptintf("%d",Count);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式