码迷,mamicode.com
首页 > 其他好文 > 详细

15.5.29 整数找1问题

时间:2015-05-31 10:49:07      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

主要思路:没有按照大家的思维去找规律,而是直接利用字符串匹配,把int转string,让程序去判断,匹配到1,计数器就加1。

PS:这是一个恶毒的算法...时间复杂度太高。n=f(n),目前算的最大n是200001。

  尝试算50000000,等了半天第一个数的f(n)都没出来...

//Powered by LZR! 字符串匹配找1
#include<iostream>
#include<string>
using namespace std;

int coute(int n)
{
    string  str;
    int i,j,clock=0;
    for(i=1;i<=n;i++)
    {
        char t[32];
        sprintf(t,"%d",i);
        str=t;
        for(j=0;j<str.length();j++)
        {
            if(str.find_first_of("1",j)==j) 
            {     
                clock++;
            }
        }
    }
    return clock;
}

void main()
{
    int n;
    cout<<"请输入一个正整数:"<<endl;
    cin>>n;
    cout<<"字符1,出现的次数为:"<<coute(n)<<endl;
}

技术分享

技术分享

15.5.29 整数找1问题

标签:

原文地址:http://www.cnblogs.com/apak/p/4541587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!