虫蚀算式问题
来源:互联网 发布:经传软件吧 编辑:程序博客网 时间:2024/06/01 09:10
#include <iostream>#include <fstream>#include <algorithm>using namespace std;const int MAX = 50;int num[MAX][3]; //num[i][0],num[i][1],num[i][2] 表示加法竖式中第i位对应的3个数int x[MAX]; int bestx[MAX];int n;bool ok(){ int carr = 0; int sum = 0; for(int i=n-1; i>=0; i--) { sum = carr + x[ num[i][0] ] + x[ num[i][1] ]; if(sum%n != x[ num[i][2] ]) return false; carr = sum / n; } return true;}void backtrack(int dep){ if(dep >= n-1) { if(ok()) { copy(x, x+n, bestx); return; } return; } for(int i=dep; i<n; i++) { swap(x[dep], x[i]); backtrack(dep+1); swap(x[dep], x[i]); }}int main(){ ifstream fin("虫蚀算式.txt"); cout << "输入进制数:"; fin >> n; cout << n << endl; cout << "输入算式:\n"; int i, j; char nums[27]; for(j=0; j<3; j++) { fin >> nums; cout << nums; for(i=0; i<n; i++) num[i][j] = nums[i] - 'A'; cout << endl; } for(i=0; i<n; i++) x[i] = i; for(i=0; i<3; i++) { for(j=0; j<n; j++) cout << num[j][i]; cout << endl; } backtrack(0); cout << "英文字母对应的数字分别为:\n"; for(i=0; i<n; i++) cout << bestx[i] << " "; cout << endl; cout << endl; fin.close(); return 0;}
0 0
- 虫蚀算式问题
- 凑算式(排列组合问题)
- 算式
- 2014蓝桥杯问题 C: 神奇算式
- 全排列实现猜算式问题
- 孤独的7 虫蚀算-穷举法
- js关于判断算式中括号匹配的问题
- 算式计算
- 计算式
- 算式计算
- 古堡算式
- 趣味算式
- 猜算式
- 古堡算式
- 古堡算式
- 趣味算式
- 算式求解
- 猜算式
- Masonry使用总结
- OC多线程
- IOS7 UITextField 隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘
- win7下配置qt+opencv 注意事项
- LeetCode 139 Word Break
- 虫蚀算式问题
- java编程思想(读书笔记):1.对象导论
- http请求和http响应的详细解析
- 【设计模式】一些通用的面向对象设计原则简介
- CF414B、CF415DMashmokh and ACM【二维DP】
- UI 手势
- MediaPlayer的使用
- 控件阴影效果
- 栈的学习-四则运算实例