拼数字
拼數字
問題描述
對于給定的字符序列(字符序列長度小于100),從左至右將所有數字字符取出拼接成一個無符號整數(拼接出的整數小于2^31)。
然后計算并輸出該整數的最大因子(如果是素數或0,則其最大因子為自身)。
輸入說明
輸入數據為一行字符序列。
輸出說明
對輸入的字符序列,求出所得整數的最大因子;若字符序列中沒有數字或找出的整數為0,則輸出0。
輸入樣例
樣例1輸入
sdf0ejg3.f?9f
樣例2輸入
?4afd0s&2d79*(g
樣例3輸入
abcde
輸出樣例
樣例1輸出
13
樣例2輸出
857
樣例3輸出
0
#include<stdio.h> #include<string.h> #include<math.h> int main() { /**************************函數參數******************************************** *rec[100]: 接受字符串數組 *tra[100]: 發送字符串數組 *xlong: 測量數組寬度 *count: 計數值 *num: 轉化下來的值 *******************************************************************************/char rec[100],tra[100];int xlong,count,num;count=0;num=0;gets(rec);xlong=strlen(rec);for(int i=0;i<xlong;i++)//交換數組 if(rec[i]<='9'&&rec[i]>='0'){tra[count]=rec[i];count++;} tra[count]='\0' ; /*將字符轉化為數字*/ xlong=strlen(tra);if(count!=0) for(int i=0;i<xlong;i++){num=num+(tra[i]-48)*pow(10,xlong-i-1);} /*找出最大因數*/ if(num>1)for(int i=num-1;i>0;i--){if(i==1){printf("%d",num);break;}else if((num/i)*i==num){printf("%d",i);break;}}else// num=0||1;printf("%d",num);return 0; } @ RoboMaster!十兮總結
- 上一篇: 4Sum -- LeetCode
- 下一篇: 91--100