2022年

第一题

# include
# include
# include
# includeusing namespace std;bool is_prime(int n){for(int i = 2; i <= n/2; i++){if(n % i == 0)return false;}return true;
}int str2num(string s){int sum = 0, len = s.size();for(int j = len - 1; j >= 0; j--)sum += int(s.at(j) - '0') * pow(10, len - 1 - j);return sum;
}bool judge(string s){int len = s.size();int n;string s1, s2;if(len % 2 == 1){n = len / 2 + 1;s1 = s.substr(0, n);    s2 = s.substr(n - 1, n);}else{n = len / 2;s1 = s.substr(0, n);    s2 = s.substr(n, n);}// 在s1和s2都是质数的情况下判断是否是对称的,如果对称则返回true,其他都返回falseif( is_prime(str2num(s1)) && is_prime(str2num(s2)) ){for(int i = 0; i < n; i++){if(s1.at(i) != s2.at(n - i - 1))return false;}return true;}elsereturn false;
}int main(){int count = 0, n = 0, num = 10;// 一开始便可以设置右对齐cout << setiosflags(ios::right);while(count < 50){string s = to_string(num++);if(judge(s)){// 先留空,再输出,可以得到整齐的输出格式cout << setw(8) << s;count ++;n++;}if(n == 5){n = 0;cout << endl;}            }return 0;
}

代码运行结果如下:

      11      22      33      55      77111     131     171     313     373717     737     797     979    11111331    1771    3113    3773    71177337    7997    9779   10101   1070111311   13131   14941   15151   1575116761   17971   18181   19191   1999131113   31313   33733   34743   3535335953   37373   38383   38983   7010770907   72727   73337   73937   74347

第二题

# include
# include
# include
using namespace std;bool is_leap(int n){if((n%4 == 0 && n/100 !=0) || n % 400 ==0)return true;elsereturn false;
}int main(){int year, month, day, hour, minute, second;int second_num = time(0);// 分别计算当前距离1970年1月1日有多少天,以及当前这一天有多少秒int day_num = second_num /(24 * 60 *60);second_num = second_num % (24 *60 *60);// 计算当天时间hour = second_num / (60 * 60);second_num = second_num % (60 * 60);minute = second_num / 60;second = second_num % 60;// 计算当前日期// 从1970年开始,先算年份// 若今年是平年且剩余天数大于365 或者 今年是闰年剩余天数大于366 则进入循环// 给年数加一,同时剩余天数减去相应的天数year = 1970;while( (is_leap(year) && day_num > 366) || (!is_leap(year) && day_num > 365) ){if(is_leap(year))day_num -= 366;elseday_num -= 365;year ++;}// 根据今年的年份,给month_num数组相应的赋值int month_l[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int month_c[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int month_num[12];if(is_leap(year))for(int i = 0; i < 12; i++)month_num[i] = month_l[i];elsefor(int i = 0; i < 12; i++)month_num[i] = month_c[i];// 计算月份int i;for(i = 0; month_num[i] < day_num; i++)day_num -= month_num[i];month = i + 1;// 注意当前日期是已经过去的天数 + 1day = day_num + 1;cout << "Current Time(GMT):";cout << year << "-" << setw(2) << setfill('0') << month << "-" << setw(2) << setfill('0') << day << "," ;cout << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute << ":"  << setw(2) << setfill('0') << second << endl;return 0;
}

运行结果如下:

Current Time(GMT):2022-11-30,07:34:10


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部