当前位置: 首页> 科技> 名企 > 微商城app下载_营销型网站多少钱_windows优化大师要钱_苏州百度 seo

微商城app下载_营销型网站多少钱_windows优化大师要钱_苏州百度 seo

时间:2025/7/18 9:48:03来源:https://blog.csdn.net/2302_76739243/article/details/146214914 浏览次数:0次
微商城app下载_营销型网站多少钱_windows优化大师要钱_苏州百度 seo

1高频考点与暴力解题_哔哩哔哩_bilibili

感谢up主分享,以下内容是学习笔记,以c++为主,部分python


题目一:维纳的年龄

题目内容

美国数学家维纳(N.Wiener)智力早熟,
11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。
于是有人询问他的年龄,
他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。
这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 
请编程输出当年维纳的年龄。

解题步骤

利用暴力法枚举得到维纳的年龄,

先对大致范围做一个确定

立方为4位数,一定大于10,

4次方为6位数,一定小于30

所以外层循环为

for(int i=10;i<30;i++){} 

 再求出年龄的立方和四次方,保险起见用long long

    long long cube=(long long)i*i*i;long long forth=(long long)i*i*i*i;

 再做检查,进一步缩小范围,以此为内层条件

    if(cube>1000 && cube<10000 && forth>100000 && forth<1000000){}

 利用自定义函数检查是否包含0~9

可以把立方和四次方转为字符串,再用字符串的sort方法排序,方便挨个检查

这样可以不用字典之类的统计次数啥的,比较简单

bool isunique(long long cube,long long forth){//把两个数字转为字符串并且拼接 string s=to_string(cube)+to_string(forth);//调用字符串函数进行排序,方便检查 sort(s.begin(),s.end());//逐个检查 for(int i=0;i<10;i++){if(s[i]!='0'+i)	return false;}return true;
}

如果符合要求在主函数中打印输出,可以再看看是否正确

cout<<i<<" "<<cube<<" "<<forth;

答案

18岁 

 code

#include<iostream>
#include<string>
#include<algorithm>using namespace std;bool isunique(long long cube,long long forth){//把两个数字转为字符串并且拼接 string s=to_string(cube)+to_string(forth);//调用字符串函数进行排序,方便检查 sort(s.begin(),s.end());//逐个检查 for(int i=0;i<10;i++){if(s[i]!='0'+i)	return false;}return true;
}
int main(){//使用暴力枚举//先确定大致范围,立方为4位数,一定大于10,//4次方为6位数,一定小于30for(int i=10;i<30;i++){//求出这该4位数和6位数long long cube=(long long)i*i*i;long long forth=(long long)i*i*i*i;//再做检查 if(cube>1000 && cube<10000 && forth>100000 && forth<1000000){//调用函数检查是否包含0~9 if(isunique(cube,forth))//结果输出再检查一下! cout<<i<<" "<<cube<<" "<<forth;}} return 0;
}

 题目二:小明的妹妹

题目内容

小明带两个妹妹参加元宵灯会。
别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。
小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。”
请你写出:小明的较小的妹妹的年龄。

解题步骤

 用两个int型变量表示两人年龄,初定范围1~50岁

int x,y;//x为较小的妹妹 
for(x=1;x<100;x++){//给定年龄合适区间

年龄差不超过8岁就从8岁开始倒推

y=x+8;//相差不超过8岁 
for(;y>x;y--){

逐个检查年龄之积是年龄之和的6倍

if(x*y==6*(x+y))//年龄之积是年龄之和的6倍cout<<x<<" "<<y;//输出检查 

答案

10

code

#include<iostream>
using namespace std;
int main(){int x,y;//x为较小的妹妹 for(x=1;x<50;x++){//给定年龄合适区间 y=x+8;//相差不超过8岁 for(;y>x;y--){if(x*y==6*(x+y))//年龄之积是年龄之和的6倍cout<<x<<" "<<y;//输出检查 }}
}

题目三:制作门牌

题目内容

小蓝要为一条街的住户制作门牌号。
这条街一共有2020 位住户,门牌号从1 到2020 编号。
小蓝制作门牌的方法是先制作0 到9 这几个数字字符,
最后根据需要将字符粘贴到门牌上,
例如门牌1017 需要依次粘贴字符1、0、1、7,即需要1 个字符0,2 个字符1,1 个字符7。
请问要制作所有的1 到2020 号门牌,总共需要多少个字符2? 

解题步骤

利用好字符串内置函数解题嘎嘎快

从1开始到2020,把数字转为字符串

for(int i=1;i<2021;i++){string s=to_string(i);

统计2出现次数

count(s.begin(),s.end(),'2');

累计得出结果

int sum;
sum+=count(s.begin(),s.end(),'2');

答案

624

code

#include<iostream>
#include<string>
#include <algorithm>
using namespace std;
int main(){int sum;for(int i=1;i<2021;i++){string s=to_string(i);sum+=count(s.begin(),s.end(),'2');}cout<<sum;return 0;
}


问题四:国庆节是星期日

问题内容

1949年的国庆节(10月1日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?

解题步骤

使用python中的datetime库,可以很方便的解决所有时间问题

设置起始时间和终止时间,以及统计值

a=date(1949,10,1)
b=date(2012,10,1)
cnt=0

循环判断

满足 是10月  是1号  是周日

(注意a.weekday() 返回的整数范围是 0 到 6,分别对应星期一到星期日)

日期增加1

while a<=b:if a.month==10 and a.day==1 and a.weekday()==6:cnt+=1a+=timedelta(1)

输出结果

print(cnt)

答案

9

code

from datetime import *
a=date(1949,10,1)
b=date(2012,10,1)
cnt=0
while a<=b:if a.month==10 and a.day==1 and a.weekday()==6:cnt+=1a+=timedelta(1)
print(cnt)

关键字:微商城app下载_营销型网站多少钱_windows优化大师要钱_苏州百度 seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: