标题:这个代码如何修改?
只看楼主
btn
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-1-30
结帖率:50%
已结贴  问题点数:20 回复次数:4 
这个代码如何修改?
题目描述
试计算在区间 1 到 n的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 1到11中,1 出现了 4 次。

输入输出样例
输入
11 1
输出
4
[code][/co#include<iostream>
using namespace std;
int main(){
    int n,x;
    int cnt=0,b;
    cin>>n>>x;
    for(int j=1;j<=n;j++){
   
    for(int i=0;i<6;i++){
        b=j%10;
        
        if(b=x)   
        cnt++;
    }
}
cout<<cnt;
return 0;
}de]
搜索更多相关主题的帖子: 代码 输出 修改 出现 int 
2021-01-31 11:08
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:10 
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int n,x;
    int cnt=0,b;
    cin>>n>>x;
    for(int i = 0; i <= n; i+=10)
    {
        int a=i/10;
        if(a==x)
        {
            cnt+=(n-i+1>10)?10:n-i+1;
        }
        cnt+=(n-i>=x)?1:0;
    }
    cout<<cnt;
    return 0;
}

不清楚对不对,并且这代码只处理<100的范围,下次问题把数据范围说清楚
有几点是肯定的:
1.统计数字的出现不能按你那么去写,你只统计了个位的出现,没有十位或者更高位的
2.if语句里面,"="是赋值号,只要赋值成功,都会返回true,因此if会一直执行。"=="(两个赋值号)才是逻大小关系的等于
2021-01-31 12:14
btn
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-1-30
得分:0 
回复 2楼 雪影辰风
2021-01-31 13:34
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:10 
程序代码:
#include<iostream>
using namespace std;
int ans=0;
int n,x;
void doit(int);
int main()
{
    cin>>n>>x;
    for(int i=1; i<=n; i++)
        doit(i);
    cout<<ans;
    return 0;
}
void doit(int d)
{
    while(d!=0)
    {
        if(d%10==x)
            ans++;
        d/=10;
    }
    return;
}

记得有这个题,但是不记得名字了,这是另一道题代码改过来的
2021-01-31 13:52
btn
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-1-30
得分:0 
回复 4楼 雪影辰风
通过啦,谢谢
2021-01-31 22:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504785-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017366 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved