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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第12周 上机报告 1之练习3 回文日

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第12周 上机报告 1之练习3 回文日 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:很誘人的一個題目:2011年11月02日是一個回文日:2011 1102,我們剛剛度過!請列出近80年和近60年還有多少個回文日(假如我們能活到百歲,你和我的……)。注意:一年只有12個月。

2012年11月30日新發的程序:

#include <iostream> using namespace std; int main( ) {int year,month,day,y,anothery;bool is_cycle;int count=0;for(year = 2012; year < 2092; year++){month=year%100; //month取到的是年的后兩位month = (month%10)*10 + month/10; //將后兩位倒過來,確定月份day=year/100; //day取到的是年的前兩位day=(day%10)*10+day/10; //將前兩位倒過來,確定日期is_cycle =false;switch(month) //12個月份,各自對應合法的日期范圍{case 1:case 3:case 5:case 7:case 8:case 10:case 12: if(day<=31) is_cycle =true; break;case 4:case 6:case 9:case 11: if(day<=30) is_cycle=true; break;case 2: if((year%4==0&&year%100!=0)||year%400==0) //閏年{if(day<=29) is_cycle =true;}elseif(day<=28) is_cycle =true; break;default: continue; //后兩位倒過來根本構不成月份}if(is_cycle) //能構成回文日{y=year;anothery=year;while(y>0){anothery=anothery*10+y%10;y=y/10;}cout<<anothery<<endl;count++;}}cout<<"共有 "<< count <<"個回文日。"<<endl;return 0; }
一樓質疑的程序

/* 程序頭部注釋開始* 程序的版權和版本聲明部分* Copyright (c) 2011, 煙臺大學計算機學院* All rights reserved.* 文件名稱: cycledate.cpp * 作 者: 賀利堅 * 完成日期: 2011 年11月9日* 版本號: v1.0 * 對任務及求解方法的描述部分* 輸入描述:無* 問題描述:很誘人的一個題目:2011年11月02日是一個回文日:2011 1102,我們剛剛度過!列出近80年還有多少個回文日* 程序輸出:* 問題分析:在近80年中,年份確定后,將其從最低位開始倒著取出,每兩位組成一個單位,分別對應月份和日期部分。* 分別判斷這些月份和日期的取值范圍是否合乎要求,如果符合則輸出……* 程序頭部的注釋結束 */ #include <iostream> using namespace std; int main( ) {int year,month,day,y,anothery;bool is_cycle;int count=0;for(year = 2012; year < 2092; year++){y =year; //后面直接用year不行嗎?month=y;y=y/10;month = month*10 + y; //將后兩位倒過來,確定月份y=y/10;day=y;y=y/10;day=day*10+y; //將前兩位倒過來,確定日期is_cycle =false;switch(month) //12個月份,各自對應合法的日期范圍{case 1:case 3:case 5:case 7:case 8:case 10:case 12: if(day<=31) is_cycle =true; break;case 4:case 6:case 9:case 11: if(day<=30) is_cycle=true; break;case 2: if((year%4==0&&year0!=0)||year@0==0) //閏年{if(day<=29) is_cycle =true;}elseif(day<=28) is_cycle =true; break;default: continue; //后兩位倒過來根本構不成月份}if(is_cycle) //能構成回文日{y=year;anothery=year;while(y>0){anothery=anothery*10+y;y=y/10;}cout<<anothery<<endl;count++;}}cout<<"共有 "<< count <<"個回文日。"<<endl;return 0; }

運行結果

經驗積累:

1. 各方面要考慮周詳

2. 在for循環中,用于表示年份的year只能在year++處變化,程序中再要用年份值,用其他變量臨時替換

3. 變量用有意義的名稱,編程過程中不會將意思搞亂

上機感言:

1. 我在程序中使用的while, for, if, switch還是很規矩的,請體會

2. 突然意識到這是個練習程序結構的好題,我做一份給大家參考吧

3. 人生苦短,你還能過9個回文日,我能過7個,這樣想想,20111102多么珍貴。



總結

以上是生活随笔為你收集整理的第12周 上机报告 1之练习3 回文日的全部內容,希望文章能夠幫你解決所遇到的問題。

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