HihoCoder - 1558
生活随笔
收集整理的這篇文章主要介紹了
HihoCoder - 1558
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
H國的身份證號碼是一個N位的正整數(shù)(首位不能是0)。此外,由于防偽需要,一個N位正整數(shù)是合法的身份證號碼當且僅當每位數(shù)字都小于等于K,并且任意相鄰兩位數(shù)字的乘積也小于等于K。
例如對于K=5, 101、211、210等都是合法的號碼,而106、123、421等都是非法的號碼。
給定一個正整數(shù)N以及K,請從小到大輸出所有合法的號碼。 ?
Input兩個整數(shù)N和K。
對于80%的數(shù)據(jù),1 ≤ N ≤ 6。
對于100%的數(shù)據(jù),1 ≤ N ≤ 9,1 ≤ K ≤ 5。
Output按從小到大的順序輸出所有合法的N位號碼,每個號碼占一行。
Sample Input2 4Sample Output10 11 12 13 14 20 21 22 30 31 40 41? ?ac代碼:
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int n,k,sum = 0;//sum剛開始的時候賦值為0; void dfs(int s,int per,int m)//s代表起始 per代表前驅 m代表位數(shù) {if(m==(n+1)){printf("%d\n",sum);//如果位數(shù)足夠,輸出return;} int ss;//代表前一位數(shù)與這一位數(shù)的成績for(int i = s;i<=k;i++){ss = per*i;if(ss>k) break;sum = 10*sum + i; dfs(0,i,m+1);sum = (sum - i)/10;} } int main() {cin>>n>>k;dfs(1,0,1);return 0; }轉載于:https://www.cnblogs.com/acer1238/p/9165497.html
總結
以上是生活随笔為你收集整理的HihoCoder - 1558的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ansible暂停模块
- 下一篇: 页面报错状态码