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

#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,一共有多少种情况?

时间: 2024-10-22 22:39:34

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

刷题之路(九)--判断数字是否回文

Palindrome Number 问题简介:判断输入数字是否是回文,不是返回0,负数返回0 举例: 1: 输入: 121 输出: true 2: 输入: -121 输出: false 解释: 回文为121-,所以负数都不符合 3: 输入: 10 输出: false 解释: 倒序为01,不符合要求 解法一:这道题比较简单,先判断一下,负数返回0,正数可以通过转换为字符串,通过方法反转,再比较两字符串 解法二:Revert half of the number 将一个数字分为前后两部分,通过判断数

(五)、利用命令行参数输入三个整数,并对三个数字进行降序排列

1 /*利用命令行参数输入三个整数,并对三个数字进行降序排列. 2 –PS:将字符串转换为数字的方法 3 •int num=Integer.parseInt(String number);*/ 4 package com.gen; 5 6 public class ArgumentOrder { 7 public static void main(String args[]) 8 { 9 System.out.println("Please input three number by args:

php实现数字格式化,数字每三位加逗号的功能函数

php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 function num_format($num){  if(!is_numeric($num)){   return false;  }  $num = explode('.',$num);//把整数和小数分开  $rl = $num[1];//小数部分的值  $

JS格式化数字(每三位加逗号)

// 方法一function toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split(''); for (var i = num.length - 1; i >= 0; i--) { counter++; result.unshift(num[i]); if (!(counter % 3) && i != 0) { result.unshift(','); } } retu

十九:数字排重

问题 : 数字排重题目描述给出一些数字(小于100), 其中会有很多重复的数字.需要从小到大输出哪些数字出现过.比如 给出的数字是5 6 5 2 6 2其中出现的数字只有 5 6 2那么从小到大输出,一行一个.则为256输入第一行:一个数字,表示要判重的数字个数.第二行:需要判重的数字.输出一行只一个数字,从小到大排列样例输入65 6 5 2 6 2样例输出25 6 1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 i

将1到9这九个数字填入xxxx*x=xxxx组成一个乘法算式,要求九个数字必须都填入且任何数字都不能重复填入

java实现代码如下: import java.util.HashSet;import java.util.Set; public class TestMultiplication { public static void main(String[] args) { for(int i=2;i<=8;i++){ for(int j=1234;j<=4938;j++){ Set<String> set=new HashSet<String>(); String iStr=

中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八--&gt;12345678)

昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2…十换成10.可是那么问题来了…… 一十二呢…不能是1102吧…这不就坑爹了吗?一百万呢………所有我苦苦思索,花费了我差不多半天的时间,终于写出了下面的程序. 1 public static void main(String[] args){ 2 3 Map<Character, String> numberMap = new HashMap<

数字格式化,从右往左每隔三位加逗号的四种方法

转载自:http://www.uedsc.com/micrometer-method.html 有時候我个必需将数字加上每三个位数加上一个逗号,例如20000变成20,000,目的是为了在方便财务上阅读,所以我整理了以下四种解決的方法: 1.javascript //一个迂回函式 function formatNumber(str) { if(str.length <= 3){ return str; } else { return formatNumber(str.substr(0,str.l

十个数字不同,实现加减乘。暴力枚举法

/*2016.08.29此程序功能是实现十个个位数字的组合不同形式形成加减乘法,可以灵活变动以适应不同的要求*/#include<iostream>using namespace std;int main(){ int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (int i0 = 0; (i0 < 10) && (a[i0] != -1); i0++){ a[i0] = -1; if (i0 == 1) for (int