蓝桥杯 排它平方数 dfs

来源:互联网 发布:学闽南话的软件 编辑:程序博客网 时间:2024/04/28 16:21

dfs即可。

也不一定要用字符串存储,用int也行,在判断乘积前先判断里面是否有数字相同即可。

#include <iostream>#include <stdlib.h>using namespace std;/* run this program using the console pauser or add your own getch, system("pause") or input loop */bool vis[10] = {false};char num[7];void dfs(int step){if(step == 6){num[6] = '\0';long long chengShu = atoi(num);long long chengJi = chengShu * chengShu;while(chengJi != 0){int temp = chengJi % 10;chengJi /= 10;if(vis[temp])return;}cout <<chengShu<<" "<< chengShu * chengShu <<endl;}for(int i=0; i<=9; i++){if(step == 0 && i == 0)continue;if(vis[i] == false){vis[i] = true;num[step] = '0' + i;dfs(step+1);vis[i] = false;}}}int main(int argc, char *argv[]) {dfs(0);return 0;}


0 0
原创粉丝点击