亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

UVa 1583生成元問題C語言實現

UVa 1583生成元問題C語言實現

化糖 2017-08-14 16:30:04
題目是:x加上x的的各位數字得到y,稱x為y的生成元。給出n(1<=n<=100000),求最小生成元。無解輸出0。以下是示例代碼。????問題是,我覺得if語句那一行的第二個判斷條件是不可能為真的,因為ans[y]如果非0的話,這個值一定比現在的m小,因為m是遞增的呀。#include<stdio.h> #include<string.h> #define?maxn?100005 int?ans[maxn];int?main() { ????int?T,n; ????memset(ans,0,sizeof(ans)); ????for(int?m=1;m<maxn;m++) ????{ ????????int?x=m,y=m; ????????while(x>0) ????????{ ????????????y+=x%10; ????????????x/=10; ????????} ????????if(ans[y]==0||m<ans[y])????//不解 ?????????ans[y]=m;//從1-maxn找每個數最小生成元,沒有為0 ????} ????scanf("%d",&T); ????while(T--)????{ ????????scanf("%d",&n); ????????printf("%d\n",ans[n]);//輸出每個數的最小生成元? ???? } ????return?0; }
查看完整描述

2 回答

?
遙不可及不放棄

TA貢獻15條經驗 獲得超5個贊

你這個會有段錯誤吧,數組訪問會越界

查看完整回答
2 反對 回復 2017-08-16
  • 化糖
    化糖
    怎么解決呢?
  • 慕用026480
    慕用026480
    定義Maxn為10045,并在生成生成元的循環中將循環停止的條件改為m<100001
  • 2 回答
  • 2 關注
  • 2226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號