用C语言编程:从1到300的自然数中,完全不含有数字3的有多少个?将所有含3的数字
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
不知道你学了排列组合没得。这就是个例子。
#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
不知道你学了排列组合没得。这就是个例子。
展开全部
#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吧,我的方法可扩展性更好些,如果范围更大的话
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吧,我的方法可扩展性更好些,如果范围更大的话
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单
int Count=0;
for(int 1=0;i<=300;i++)
{
CString str;
str.Format("%d",i);
if(str.Find("3");
Coun++;
}
ptintf("%d",Count);
int Count=0;
for(int 1=0;i<=300;i++)
{
CString str;
str.Format("%d",i);
if(str.Find("3");
Coun++;
}
ptintf("%d",Count);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询