首页 > 其他 > 详细

用1到9这九个数字变成三位数加三位数等于三位数的加法,例如:173+295 =468,一共有多少种情况?

时间:2014-08-19 10:43:44      阅读:460      评论:0      收藏:0      [点我收藏+]
#include "stdafx.h"

#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;

void FindCount(vector<int> &vect,int iPos,int &Count)
{  
	if (iPos>8)
	{
		int i1 = vect[0] * 100 + vect[1] * 10 + vect[2];
		int i2 = vect[3] * 100 + vect[4] * 10 + vect[5];
		int i3 = vect[6] * 100 + vect[7] * 10 + vect[8];
		if(i1+i2==i3)
		{
			printf("%d+%d==%d\n", i1, i2, i3);
			Count++;
		}
		return;
	}

	for (int i = 1; i <= 9;i++)
	{
		if (  find(vect.begin(),vect.end(),i)  ==  vect.end())
		{
			vect[iPos] = i;
			FindCount(vect, iPos + 1, Count);
			vect[iPos] = 0;
		}
	}
}

int _tmain(int argc, _TCHAR* argv[])
{

	vector<int> vt(9);
	int Count = 0;
	FindCount(vt, 0, Count);
	printf("一共%d个!", Count);
	system("pause");
	return 0;
}

  

顺便说说 vector中的find

一个find Vector的例子,注意find不属于vector的成员,而存在于算法中,应加上头文件#include <algorithm>:

#include <vector>
#include <algorithm>
#include <iostream>

int main( )
{
    using namespace std;

    vector<int> L;
    L.push_back( 1 );
    L.push_back( 2 );
    L.push_back( 3 );
    L.push_back( 4 );
    L.push_back( 5 );
    vector<int>::iterator result = find( L.begin( ), L.end( ), 3 ); //查找3
    if ( result == L.end( ) ) //没找到
        cout << "No" << endl;
    else //找到
        cout << "Yes" << endl;
}

  

用1到9这九个数字变成三位数加三位数等于三位数的加法,例如:173+295 =468,一共有多少种情况?,布布扣,bubuko.com

用1到9这九个数字变成三位数加三位数等于三位数的加法,例如:173+295 =468,一共有多少种情况?

原文:http://www.cnblogs.com/hxb316/p/3921439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!