現(xiàn)有一道編程題,輸出1993以內(nèi)所有的對稱數(shù),用指針并用函數(shù)實現(xiàn),沒有思路,有沒有好的方案?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//** 聲明結構
//** @result 返回對稱數(shù)數(shù)組
//** @length 數(shù)組的長度
struct Symmetrical {
int *result;
int length;
};
typedef struct Symmetrical Symmetrical;
Symmetrical *findSymmetrical() {
//為結果分配內(nèi)存,最大可能為所有數(shù)都是對稱數(shù),即 sizeof(int)*1993
int *result = (int *)malloc(sizeof(int)*1993);
int length = 0;
//數(shù)字轉換為字符串后存放的數(shù)組
char *numStr = (char *)malloc(sizeof(char)*4);
for (int i = 1; i <= 1993; i++) {
//如果小于10,一定為對稱數(shù)
if (i < 10) result[length++] = i;
else {
int is_symmetrical = 1;
// 轉換數(shù)字到字符串,itoa是非標準函數(shù),可以用sprintf代替
sprintf(numStr, "%d", i);
// itoa(i, numStr, 10);
int num_length = strlen(numStr);
//對每一位進行對比
for (int j = 0; j < num_length / 2; j++) {
//如果正數(shù)第j位和倒數(shù)第j位不一樣,則不為對稱數(shù),結束循環(huán)
if (numStr[j] != numStr[num_length - j - 1]) {
is_symmetrical = 0;
break;
}
}
//如果是對稱數(shù),存到結果數(shù)組里
if (is_symmetrical) result[length++] = i;
}
}
free(numStr);
//創(chuàng)建對稱數(shù)結構,用于同時傳遞數(shù)組和數(shù)組長度
Symmetrical *symmetrical = (Symmetrical *)malloc(sizeof(Symmetrical));
symmetrical->result = result;
symmetrical->length = length;
return symmetrical;
}
int main() {
Symmetrical *result = findSymmetrical();
//打印
for (int i = 0; i < result->length; i++) {
printf("%d ", result->result[i]);
}
free(result->result);
free(result);
}
答案非最優(yōu)解,但思路是這樣。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。