日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【t090】吉祥数

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【t090】吉祥数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Time Limit: 1 second
Memory Limit: 128 MB

【問題描述】

為了迎接圣誕,信息學興趣小組的同學在輔導老師的帶領下,舉辦了一個盛大的晚會,晚會的第一項內容是做游戲:猜數。老師給
每位同學發一張卡片,每張卡片上都有一個編號(此編號為非負數,且小于255),每個編號互不相同。老師制定了以下的游戲規
則:第一輪,每位同學將自己卡片上編號的各位數字進行平方后再相加得到一組新數,編號在這組新數中出現的同學淘汰出局
,第二輪,余下的同學再將編號的各位數字進行立方相加得到一組新數,編號在這組新數中出現的同學再淘汰出局,第三輪,
余下的同學再將編號的各位數字進行4次方相加得到一組新數,編號在這組新數中出現的同學再淘汰出局,……,以此類推,經
過n輪后,仍留下來的同學,將獲得圣誕特別禮物,卡片上的數即為2007年吉祥數。(假定班級人數不超過200人)
【輸入格式】

輸入文件ghillie .in 有兩行,第1行為1個正整數n(n<8),表示有n輪游戲,第二行是卡片上互不相同的編號。
輸出:剩下來的各個吉祥數,按從小到大順序輸出,每兩個數之間有一個空格。

【輸出格式】

輸出文件ghillie .out是1行,為剩下來的各個吉祥數,按從小到大順序輸出,每兩個數之間有一個空格。

Sample Input

1
24 123 2 12 20 14 4 6 36 72

Sample Output

2 6 12 24 72 123

【題目鏈接】:http://noi.qz5z.com/viewtask.asp?id=t090

【題解】

單獨寫個函數計算某個數字在第x回合各個位上的數字的x+1方和;
然后就模擬唄;
平臺日常賣萌:
如果回合數小于3.最后的數字末尾有多余的空格;
回合數大于等于3,最后的數字末尾沒有多余的空格。

【完整代碼】

#include <cstdio> #include <cstdlib> #include <cmath> #include <set> #include <map> #include <iostream> #include <algorithm> #include <cstring> #include <queue> #include <vector> #include <stack> #include <string> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define pb push_back #define fi first #define se secondtypedef pair<int,int> pii; typedef pair<LL,LL> pll;void rel(LL &r) {r = 0;char t = getchar();while (!isdigit(t) && t!='-') t = getchar();LL sign = 1;if (t == '-')sign = -1;while (!isdigit(t)) t = getchar();while (isdigit(t)) r = r * 10 + t - '0', t = getchar();r = r*sign; }void rei(int &r) {r = 0;char t = getchar();while (!isdigit(t)&&t!='-') t = getchar();int sign = 1;if (t == '-')sign = -1;while (!isdigit(t)) t = getchar();while (isdigit(t)) r = r * 10 + t - '0', t = getchar();r = r*sign; }const int MAXN = 200+100; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1}; const int dy[9] = {0,0,0,-1,1,-1,1,-1,1}; const double pi = acos(-1.0);int T; LL a[MAXN]; int n = 0; vector <LL> b; bool bo[MAXN];LL f(LL x,int round) {LL temp = 0;while (x>0){int t = x%10;LL dd = 1;rep1(i,1,round+1)dd=dd*t;temp+=dd;x/=10;}return temp; }int main() {//freopen("F:\\rush.txt","r",stdin);memset(bo,true,sizeof(bo));rei(T);LL x;while (scanf("%I64d",&x)!=EOF)a[++n] = x;rep1(ii,1,T){b.clear();rep1(i,1,n)if (bo[i])b.pb(f(a[i],ii));int len = b.size();rep1(i,1,n)if (bo[i]){rep1(j,0,len-1)if (b[j]==a[i]){bo[i]=false;break;}}}b.clear();rep1(i,1,n)if (bo[i])b.pb(a[i]);sort(b.begin(),b.end());int len = b.size();rep1(i,0,len-1){printf("%I64d",b[i]);if (i==len-1){if (T<3) putchar(' ');puts("");}elseprintf(" ");}return 0; }

轉載于:https://www.cnblogs.com/AWCXV/p/7626903.html

總結

以上是生活随笔為你收集整理的【t090】吉祥数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。