请问用从C++..怎么写出1到500所有自然数中不含数字4的自然数共有多少个?

 我来答
拒绝996的潇洒程序员
2010-11-30 · TA获得超过492个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:276万
展开全部
answer = number(个位是4的个数)+number(十位是4的个数) + number(百位是4的个数) - number(十位百位都是4的个数) - number(十位个位都是4的个数) - number(百位个位都是4的个数) + number(百位十位个位都是4的个数)

answer = 6*10 + 6*10 + 10*10 - 10 - 6 - 10 + 1
= 220 - 26 + 1
= 195

answer-=1 ; //0不算

显然c++实现的时候,给定一个自然数int值,只需要:
1. 确定当前int的位数。
2. 确定最高位的大小
3. 套用上面的公式计算。
jayhou1986
2010-11-30 · TA获得超过1511个赞
知道小有建树答主
回答量:586
采纳率:81%
帮助的人:417万
展开全部
#include <iostream>
using namespace std;

void main()
{
int count = 0;
for (int i = 1; i <= 500; ++i)
{
if (i % 10 == 4 || i / 10 % 10 == 4 || i / 100 == 4)
continue;
++count;
cout << i << " ";
if (count % 10 == 0)
cout << endl;
}
cout << endl;
cout << "共有" << count << "个" << endl;
}
不但统计了个数,而且将没有4的都打印出来了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghj123h
推荐于2016-12-01 · TA获得超过2560个赞
知道小有建树答主
回答量:1792
采纳率:0%
帮助的人:383万
展开全部
#include<iostream>
using namespace std;
int main()
{
int i,a,b,c,s;
for(i=1;i<=500;i++)
{
a=i%10;
c=i/100;
b=(i%100-a)/10;
if(a!=4&&b!=4&&c!=4)
{
s++;
}
}
cout << s << endl;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-11-30
展开全部
#include <iostream>;

void main()
{
int count;
for (int i = 1; i <= 500; i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if (a == 4 || b== 4 || c== 4)
count++;
}
cout << "有 "<< count << "个" << endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式