代码如下: 两次循环查找: 左边乘积==右边乘积 // int2vec.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include<vector> using namespace std; //将int数,转为vector<int> vector<int> int2vec(int a){ int temp ; vector<int> res; while (a>10){ temp = a % 10; res.push_back(temp); a = a / 10; } res.push_back(a); return res; } int _tmain(int argc, _TCHAR* argv[]) { vector<int> res; int a; cin >> a; res = int2vec(a); for (int i = 0; i < res.size(); i++){ cout << res[i] << endl; } int flag = 0; for (int i = 1; i<res.size(); i++){ int left = 1, right = 1; int k, j; for (k = i; k<res.size(); k++){ right = right*res[k]; } for (j = 0; j<i; j++){ left = res[j] * left; } cout << left << right; if (left == right){ cout << "YES";//一旦有输出,停止查找 flag = 1; break; } } //没有找到相等的点 if (!flag){ cout << "NO"; } system("pause"); return 0; } 整数直接转字符串: 字符串数字的值:为该字符型 - '0'; |
|
来自: 雪柳花明 > 《C 笔试 算法题准备》