C++ 求解一道题 给出任意一个整数n,计算出 从1到n中所有数中1出现的次数 求大神帮忙

如题所述

#include <iostream>

#include <sstream>

#include<string>



using namespace std;


int main()

{

cout<<"input the n "<<endl;

int n;

cin>>n;

    for(int i=1;i<n+1;i++)

    {

    ostringstream os;

    os<<i;

    string temp=os.str();

     int count=0;

    for(int j=0;j<temp.length();j++)

    {

      if(temp[j]=='1')

      count++;


    }

    cout<<i<<"has size of 1 "<<count<<endl;

    }

    cout << "Hello world!" << endl;

    return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-02

重点学习取出每一位的过程,莫只是抄了了事。


#include <iostream.h>
int main ()
{
int n;
cout<<"pls input n";
cin>>n;
int s[10]={0};//存储每个数字出现个数
for(int i=1;i<=n;i++)
{
//连续从后边取出一位进行计数
int shang,yushu;
shang=i;
while(shang!=0)
{
yushu=shang%10;
s[yushu]++;
shang=shang/10;
}
}
//输出结果
cout<<i<<":"<<s[1]<<endl;
}

本回答被网友采纳
第2个回答  2013-05-19
楼主采纳我的吧,我的比较精妙

#include "iostream.h"
int main()
{

int n,i;
cin>>n;
int count = 0;
int seed[10] = {0,1,0,0,0,0,0,0,0,0};
for (i=0;i<=n;++i)
{
count += seed[i % 10];
count += seed[i % 100 / 10];
count += seed[i % 1000 / 100];
count += seed[i % 10000 / 1000];
count += seed[i % 100000/ 10000];

}
count += 1;
cout<<count;

}
第3个回答  2013-05-18
#include <stdio.h>
int main()
{
int n ;
int cnt=0;
scanf("%d" , &n );
for( i=1;i<=n;i++ )
{
int x=i ;
while( x )
{
if ( x%10 == 1)
cnt++ ;
x/=10 ;
}
}
printf("cnt1=%d\n",cnt);
return 0;
}

C++ 求解一道题 给出任意一个整数n,计算出 从1到n中所有数中1出现的次...
int main(){ cout<<"input the n "<<endl;int n;cin>>n;for(int i=1;i<n+1;i++){ ostringstream os;os<<i;string temp=os.str();int count=0;for(int j=0;j<temp.length();j++){ if(temp[j]=='1')count++;} cout<<i<<"has size of 1 "<<count<<endl;} cout <...

求助求助~~C++编程。随意输入一个正整数N,计算从1~N之间0、1、2、3...
\/\/如果n=13,1出现的次数只有6次吧:1 10 11 12 13 include <iostream> using namespace std;int main(){ int i,n,num,a[10]={0};\/\/定义变量,初始化数组a为零 cin>>n;for (i=1;i<=n;i++){ num=i;while (num) \/\/统计0..9数字出现的次数 { a[num%10]++;num\/=10;} ...

...N为正整数,计算从1到N的所有整数中包含数字1的个数。 求大神看看程...
关于i的循环,又出现了i\/=10,因此陷入了死循环。可另设正整数k,令k=i include<iostream>using namespace std;int main(){int n,k,temp,cnt=0;cin>>n;for(int i=1;i<=n;i++){k=i;while(k){temp=k%10;if(temp==1) cnt++; cout<<cnt; k\/=10; }}cout<<"出现1的...

求大神帮忙,c++编程 给定一个整数,求该整数中出现次数最多的数字及...
int main(){ int n;cin >> n;int a[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };\/\/0-9共10个数字,存储每个数字的频数 int temp;for (int i = 1; n > 0; i++){ temp = n % 10;\/\/取出第i位 a[temp]++;n = n \/ 10;} int max = a[0], flag = 0;\/\/...

C++统计数组中数字出现的次数
用一个数组接收数据,使用for循环来输入数据,如果要统计某个数出现的次数并得到单数双数的个数,设置计数器,再用一个循环来遍历数组并判断。int a[9];int i=0,j=0,k=0 for(;i<=9;){ scanf("%d",&a[i++]);} for(;j<=9;){ if(a[j++]%2==1){ printf("odd\\t");k++;} ...

C++,输入字符串,统计各个字母出现次数,显示字母和次数,求大神知道咩
1、首先我们选择鼠标单击文件里的“新建”项目。2、选择为:控制台应用程序 - “名称:计算字符串中每个字母的出现次数 - ”确定。3、之后我们选择确定系统生成的代码。4、首先编写一个字符串进行测试。5、测试代码1:使用Dictionary集合和循环来确定测试代码。6、测试结果1:程序成功运行后显示每个字母的...

c++怎么计算一个数列中数字的个数?
int main(){ int n=0;int i;int data;printf(“请输入一串数:\\n”);\/\/这个数值是Int类型的别超过最大值,既可 scanf(“%d”,&data);int num[10] = {0};while(data){ n = data%10;data \/=10;++num[n];} for(i = 0; i<10; i++){ if(num[i] > 0)printf(“数%d出现...

c++中怎样计算一个字符串中其中一个字符出现的次数
用一个循环比如while(a[i]!='\\0')然后用switch语句判断每一个元素出现的次数,用一个变量自加来计数。

c++模板函数统计中统计一个数组里一组数相同数出现次数的函数
void traceResult(int iFound, vector<int>& v){ cout << "第" << iFound << "对相等的数字为:" << v[0] << ",且有" << v.size() << "个相等的数字。" << endl;}int _tmain(int argc, _TCHAR* argv[]){ vector<int> v; int input = 0; while (true) { cin ...

c++怎么实现在一句话中统计某个单词出现的次数。
else\/\/比较下一个字母 { i++;p++;} } } p++;i=0;} return k;} void main(){ char word[100],juzi[100];printf("输入要句子:\\n");gets(juzi);printf("输入要查找的单词:\\n");gets(word);printf("单词的个数:%d",chazhao(juzi,word));} 如果用文件的话用fget(str,n,fp)...

相似回答