首页 > 编程知识 正文

好听三位数,3位数的好数字

时间:2023-05-04 07:32:49 阅读:217475 作者:1559

三位数

题目:有1、2、3、4, 4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

因为最近在学习DFS 和 BFS就试着用DFS来写了这道题

#include <stdio.h>#include <stdlib.h>int a[4];int b[5] = {0};int sum = 0;//i -> 当前数是几//step -> 控制是三位数void dfs(int i, int step){ if(i > 4) { return; } if(step == 3) { sum++; for(int i = 1; i <= 3; i++) { printf("%d ", a[i]); } printf("n"); } for(int j = 1; j <= 4; j++) { if(b[j] == 0) { a[i] = j; b[j] = 1; dfs(i + 1, step + 1); b[j] = 0; } }}int main(){ dfs(1, 0); printf("%dn", sum); return 0;}

当然直接暴力也可

int main(){ int sum = 0; for(int i = 1; i <= 4; i++) { for(int j = 1; j <= 4; j++) { for(int k = 1; i != j && k <= 4; k++) { if(k != i && k != j) { printf("%dn", i * 100 + j * 10 + k); sum++; } } } } printf("%dn", sum); return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。