标题:一个c++程序,望大虾帮忙看下
只看楼主
morose2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2011-5-11
结帖率:66.67%
已结贴  问题点数:15 回复次数:1 
一个c++程序,望大虾帮忙看下
编了个小程序,分析一组数里面有多个个位数相同的数,程序能运行,但是感觉当待分析数组变成二维数组的时候,进行适当的改进后执行效率很低,希望各位大虾帮我改进下。
程序如下:
#include <iostream>
#include <vector>
using namespace std;
int compare(vector<int> &a,vector<int> &b)
{
    vector<int> temp,temp1;
    int count=0,count1=0,count2=0;
    for(int i=0;i<a.size();i++)
        for(int j=0;j<b.size();j++)
        {
            if(a[i]==b[j]%10)
            {
                count+=1;
                temp.push_back(a[i]);
            }
        }
    for(int i=0;i<b.size()-1;i++)
            for(int j=i+1;j<b.size();j++)
            {
                if(b[i]%10==b[j]%10)
                {
                    count1+=1;
                    temp1.push_back(b[i]%10);
                }
            }
    for(int i=0;i<temp.size();i++)
        for(int j=0;j<temp1.size();j++)
        {
            if(temp[i]==temp1[j])
            {
                count2+=1;
            }
        }
    return(count+count1-count2);   
}
int main()
{
         int analysisnum[]={1,2,3,5,6,7,8,11,13,23,25,28,30,15};
//首先我把上面的数按<10,>=10分成2个数组。另外3,13,23算一个count,哈哈,其他类推。
    int a[]={1,2,3,5,6,7,8};
    int b[]={11,13,23,25,28,30,15};
    vector<int> temp(a,a+7),temp1(b,b+7);
    int result=0;
    result=compare(temp,temp1);
    cout<<result;
    return 0;
}
搜索更多相关主题的帖子: include compare count 
2011-07-13 17:24
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:15 
http://support. stl里的count_if
//求一个数有多少位:
int get_digit(unsigned int num)
{
    int sum = 0;

    do{
        num /= 10;
        sum ++;
    }while(num > 0);

    return sum;
}

//求整数最后一位
int get_bit_one(unsigned int num)
{
    int bit = get_digit(num);

    while(bit > 1)
    {
        num %= 10;
        bit --;
    }

    return num;
}
综合上面的知识思考,你就可以很好的改进你的算法,从而达到求数组中任意位数的正整数个位相同数。


我们都在路上。。。。。
2011-07-14 12:30



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




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

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