拼数字
拼數(shù)字
問題描述
對(duì)于給定的字符序列(字符序列長(zhǎng)度小于100),從左至右將所有數(shù)字字符取出拼接成一個(gè)無符號(hào)整數(shù)(拼接出的整數(shù)小于2^31)。
然后計(jì)算并輸出該整數(shù)的最大因子(如果是素?cái)?shù)或0,則其最大因子為自身)。
輸入說明
輸入數(shù)據(jù)為一行字符序列。
輸出說明
對(duì)輸入的字符序列,求出所得整數(shù)的最大因子;若字符序列中沒有數(shù)字或找出的整數(shù)為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() { /**************************函數(shù)參數(shù)******************************************** *rec[100]: 接受字符串?dāng)?shù)組 *tra[100]: 發(fā)送字符串?dāng)?shù)組 *xlong: 測(cè)量數(shù)組寬度 *count: 計(jì)數(shù)值 *num: 轉(zhuǎn)化下來的值 *******************************************************************************/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++)//交換數(shù)組 if(rec[i]<='9'&&rec[i]>='0'){tra[count]=rec[i];count++;} tra[count]='\0' ; /*將字符轉(zhuǎn)化為數(shù)字*/ xlong=strlen(tra);if(count!=0) for(int i=0;i<xlong;i++){num=num+(tra[i]-48)*pow(10,xlong-i-1);} /*找出最大因數(shù)*/ 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!十兮總結(jié)
- 上一篇: 4Sum -- LeetCode
- 下一篇: 91--100