From 6d654f4834496ac2922857939e90a127a4971f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AC=E5=AF=92?= <10476912+pastrale@users.noreply.github.com> Date: Tue, 9 Feb 2021 18:17:30 +0800 Subject: [PATCH] 2014 --- 2014/1.cpp | 11 +++ 2014/14-1/14-1.cpp | 10 +++ 2014/14-1/14-1.dev | 62 ++++++++++++++++ 2014/14-1/Makefile.win | 29 ++++++++ 2014/14-2/14-2.cpp | 16 +++++ 2014/14-2/14-2.dev | 62 ++++++++++++++++ 2014/14-2/Makefile.win | 29 ++++++++ 2014/14-3/14-3.dev | 62 ++++++++++++++++ 2014/14-3/Makefile.win | 29 ++++++++ 2014/14-3/main.cpp | 57 +++++++++++++++ 2014/14-4/14-4.cpp | 36 ++++++++++ 2014/14-4/14-4.dev | 62 ++++++++++++++++ 2014/14-4/Makefile.win | 29 ++++++++ 2014/14-5/14-5.cpp | 17 +++++ 2014/14-5/14-5.dev | 62 ++++++++++++++++ 2014/14-5/Makefile.win | 29 ++++++++ 2014/14-6/14-6.cpp | 44 ++++++++++++ 2014/14-6/14-6.dev | 62 ++++++++++++++++ 2014/14-6/Makefile.win | 29 ++++++++ .../Makefile.win" | 29 ++++++++ .../Project1.dev" | 62 ++++++++++++++++ .../main.cpp" | 70 +++++++++++++++++++ 2014/2.cpp | 26 +++++++ 2014/3.cpp | 15 ++++ 2014/4.cpp | 19 +++++ 2014/5.cpp | 8 +++ 2014/6.cpp | 26 +++++++ 2014/7.cpp | 24 +++++++ 28 files changed, 1016 insertions(+) create mode 100644 2014/1.cpp create mode 100644 2014/14-1/14-1.cpp create mode 100644 2014/14-1/14-1.dev create mode 100644 2014/14-1/Makefile.win create mode 100644 2014/14-2/14-2.cpp create mode 100644 2014/14-2/14-2.dev create mode 100644 2014/14-2/Makefile.win create mode 100644 2014/14-3/14-3.dev create mode 100644 2014/14-3/Makefile.win create mode 100644 2014/14-3/main.cpp create mode 100644 2014/14-4/14-4.cpp create mode 100644 2014/14-4/14-4.dev create mode 100644 2014/14-4/Makefile.win create mode 100644 2014/14-5/14-5.cpp create mode 100644 2014/14-5/14-5.dev create mode 100644 2014/14-5/Makefile.win create mode 100644 2014/14-6/14-6.cpp create mode 100644 2014/14-6/14-6.dev create mode 100644 2014/14-6/Makefile.win create mode 100644 "2014/14-7 \347\273\223\346\236\204\344\275\223 \347\273\237\350\256\241\350\276\223\345\205\245\346\225\264\346\225\260\346\225\260\347\233\256 \351\232\276/Makefile.win" create mode 100644 "2014/14-7 \347\273\223\346\236\204\344\275\223 \347\273\237\350\256\241\350\276\223\345\205\245\346\225\264\346\225\260\346\225\260\347\233\256 \351\232\276/Project1.dev" create mode 100644 "2014/14-7 \347\273\223\346\236\204\344\275\223 \347\273\237\350\256\241\350\276\223\345\205\245\346\225\264\346\225\260\346\225\260\347\233\256 \351\232\276/main.cpp" create mode 100644 2014/2.cpp create mode 100644 2014/3.cpp create mode 100644 2014/4.cpp create mode 100644 2014/5.cpp create mode 100644 2014/6.cpp create mode 100644 2014/7.cpp diff --git a/2014/1.cpp b/2014/1.cpp new file mode 100644 index 0000000..29d5405 --- /dev/null +++ b/2014/1.cpp @@ -0,0 +1,11 @@ +#include +using namespace std; +int main() { + int n, cnt=0; scanf("%d", &n); + while(n){ + ++cnt; + n/=10; + } + printf("%d", cnt); +} + diff --git a/2014/14-1/14-1.cpp b/2014/14-1/14-1.cpp new file mode 100644 index 0000000..0569036 --- /dev/null +++ b/2014/14-1/14-1.cpp @@ -0,0 +1,10 @@ +#include +#include +using namespace std; + +int main() { + string str; + cin>>str; + cout< +#include +using namespace std; + +int cow(int year) { + if(year<3) //母牛从第三年开始生产,则前两年母牛的数量为1头 + return 1; + else + return cow(year-1)+cow(year-3); //递归求母牛的数量 +} + +int main() { + for (int i=1; i<=20; i++) { //遍历输出从第一年到第20年的母牛数量 + cout< +using namespace std; +/*运动员分组比赛,有N个人参加100米短跑比赛。有8条跑道,如何分组使分组数目最少, +且每组人数相差最少。例如:N=8或少于8时,就1组。N=9时,应分成2组:5个人和4个人。 +输入一个正整数(4-100)之间表示参赛人数。 +输出每个组的人数,人数按从大到小顺序输出。例如,输入:25 输出7,6,6,6*/ + +int main() { + int n; + cin>>n; //输入总人数 + if(n<4||n>100) { + cout<<"非法!"<8) //超过8的直接分8组 + g=8; + int num=n/g; //每组人数 + int r=n%g; //分组余数 + for (int i=0; i>n; + if(n%8==0){ + t=n/8; + for(int i=0;i +#include +using namespace std; + +int main() { + string s; + int sum1=0,sum2=0,sum=0; //sum1为奇数位和,sum2为偶数位数字乘2相加的和,sum为总和 + int t=0; + cin>>s; + if(s.length()>=16&&s.length()<=19){ + for(int i=s.length()-1;i>=0;i--){ + if(t%2!=0){ //奇数位相加 + sum1+=(s[i]-'0'); + }if(t%2==0){ //偶数位乘以2相加 + if((s[i]-'0')*2>=10) //若乘积为两位数,则将其减去9再相加 + sum2=sum2+((s[i]-'0')*2-9); + else + sum2+=(s[i]-'0'); + } + t++; + //cout<<"t="< +#include +using namespace std; + +int main() { + int sum=1,i; + int temp; + for (i=2;;i++) + { + temp=sum*i; //i的阶乘 + if (temp/sum!=i) //如果溢出了就跳出循环 + break; + sum=temp; + } + cout< +#include +#define N 3 //修改N的值输出不同的花朵数 +using namespace std; + +int getP(int x,int y){ + if(y==0) return 1; + else return getP(x,y-1)*x; //递归求x的y次方 +} + +int getWei(int n,int *s){ + int num=0; //记录十进制整数的位数,初始化为0 + int m=n; //将十进制整数n赋给m + while(m) //统计m的位数 + { + num++; + m/=10; + } + int index=num-1; //初始化数组s的下标 + while (n) //将n的每位数字按次序存放到数组s中 + { + s[index--]=n%10; + n/=10; + } + return num; //返回整数的位数 +} + +int main() { + int s[N]; + int count=0; //记录花朵数,初始化为0 + for (int i=getP(10,N-1);i +#include +using namespace std; + +struct zs { //建立机构体,存放数据及其出现次数 + int data; + int num; +}; + +/**冒泡排序**/ +int sort(zs zz[],int n) { + int temp1,temp2; + for(int i=0; izz[j+1].num) { + temp1=zz[j].num; + zz[j].num=zz[j+1].num; + zz[j+1].num=temp1; + temp2=zz[j].data; + zz[j].data=zz[j+1].data; + zz[j+1].data=temp2; + } + } + } +} + +int main() { + int n,t=0,count=0; + zs zs[31]; + int i; + while(cin>>n&&(n!=-1)) { //输入整数,直至输入-1结束 + if(t==0) { //第一个数 + zs[t].data=n; + zs[t].num=1; + t++; + } else { + for(i=0; i +using namespace std; +int n = 20; +int grow[3]={0,0,1}, a=0; +#define reapAt(now,after) (grow[(now-1+after)%3]) +// 注意reapAt(y,0)和reapAt(y,3)实际使用同一存储空间 +// 因此循环时注意等reapAt(y,0)的值使用完毕,再修改reapAt(y,3) +int main() { + for(int y=1;y<=n; ++y) { + printf("year %d begin: total %d, mature %d, baby %d/%d/%d \n", + y, a+grow[0]+grow[1]+grow[2], a, + reapAt(y, 0), reapAt(y, 1), reapAt(y, 2) + ); + int grown = reapAt(y, 0); + a += grown; + reapAt(y, 3) = a; + printf("year %d: %d grown\n", y, grown); + printf("year %d: %d born\n", y, a); + printf("year %d end: total %d, mature %d, baby %d/%d/%d \n", + y, a+grow[0]+grow[1]+grow[2], a, + reapAt(y, 1), reapAt(y, 2), reapAt(y, 3) + ); + printf("%d\n", a+grow[0]+grow[1]+grow[2]); + } +} + diff --git a/2014/3.cpp b/2014/3.cpp new file mode 100644 index 0000000..0e5e036 --- /dev/null +++ b/2014/3.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; +int main() { + int n; scanf("%d",&n); + int ngroup = (n%8==0?n/8:n/8+1); //使分组数最少 + if(n%ngroup==0) + for(int i=0;i +using namespace std; +bool luhncheck(string& s){ + int sum=0; + for(int i=s.size()-1; i>=0; i-=2) { + sum+=s[i]-'0'; + } + for(int i=s.size()-2; i>=0; i-=2) { + int t=s[i]-'0', dt=2*t; + sum+=(dt>=10?dt-9:dt); + } + return sum%10==0; +} +int main() { + string s; cin >> s; + cout << (luhncheck(s)?"Okay":"Invalid"); +} + diff --git a/2014/5.cpp b/2014/5.cpp new file mode 100644 index 0000000..791483c --- /dev/null +++ b/2014/5.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; +int main() { + long long x=1,y=1; + while(x*y +using namespace std; +#define N 7 +int getP(int x, int y){ + int r=1; + for(int i=0;i +using namespace std; +#define MAX_N 30 +map m; +multimap m2; +int main() { + int x, cnt=0; + while(cin >> x && x!=-1){ + ++m[x]; + ++cnt; + } + printf("cnt: %d\n", cnt); + map::iterator it; + for(it=m.begin();it!=m.end();++it){ + printf("%d: %d times\n", it->first, it->second); + m2.insert(make_pair(it->second, it->first)); + } + printf("---------\n", cnt); + multimap::reverse_iterator rit; + for(rit=m2.rbegin();rit!=m2.rend();++rit){ + printf("%d: %d times\n", rit->second, rit->first); + } +} \ No newline at end of file