欢迎来到天天文库
浏览记录
ID:36664957
大小:236.76 KB
页数:27页
时间:2019-05-09
《《C基础与编程》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++基础与编程(2)1编程练习一:回文素数的判断2编程练习二:数据的循环显示3编程练习三:Josephus问题4深入学习一:左值的概念5深入学习二:关于goto语句6深入学习三:volatile的用法1要求:求10000以内的所有回文素数。1编程练习一:回文素数的判断基本思想:(1)输出偶素数2(2)在奇数中寻找素数(3)判断该数是否是回文数21编程练习一:回文素数的判断程序:#include#includeusingnamespacestd;intmain(){inti,j,s,n;cout<<2<<“”;for(i=3;i<1000
2、0;i+=2){n=int(sqrt(i));for(j=3;j<=n;j+=2)if(i%j==0)break;if(j<=n)continue;n=i;s=0;while(n){s=10*s+n%10;n/=10;}if(s==i)cout<
3、数组a的元素向右循环移动,然后输出它5程序:#includeusingnamespacestd;intmain(){inta[6],i,j,k;for(i=0;i<6;i++)cin>>a[i];for(i=0;i<6;i++){for(j=0;j<6;j++)cout<0;j--)a[j]=a[j-1];a[0]=k;}}2编程练习二:数据循环显示6Josephus问题----约瑟夫问题要求:n个小孩围成一圈,任意假定一个数m,从第s个小孩起按顺时针方向从1开始报数,当报到
4、m时,该小孩便离开,然后继续向后重新以1开始报数。这样,小孩不断离开,圈子不断缩小。最后剩下的一个小孩便是胜利者。3编程练习三:Josephus问题73编程练习三:Josephus问题基本思想:(1)对每一个小孩赋以标识值作为小孩离开(值为0)和不离开(值为1)的标志(2)用指针变量指向第s个小孩,并用i来计数,当i等于m时,该小孩离开圈子,此时将该小孩的值置为0(作为离开标志)(3)将指针变量指向下一个值不为0的小孩,i重新计数,当i等于m时,该小孩离开圈子,再将该小孩的值置为0,如此反复,直到剩下最后一个小孩(4)查找值不为0的那个小孩,然后将其序号值返回8程序:#
5、includeusingnamespacestd;intjosephus(intn,intm,ints);intmain(){cout<<“最后胜利者:NO。”<6、ild[k]=1;if((s>n)7、8、(s<1)){cout<<“开始报数的小孩序号超过范围!”<1){if(*p)i++;//值不为0计数if(i==m)//报到m时,置为0,重新计数,小孩数减1{*p=0;i=0;num--;}p++;//向后报数if(p>child+n-1)p=child;}//回到第0个元素//查找胜利者for(k=1;k<=n;k++)if(0!=child[k-1]){win=k;break;}delete[n]child;re9、turnwin;}3编程练习三:Josephus问题10intjosephus(intn,intm,ints){intwin;//最后胜利者的序号int*child=newint[n],num=n;inti,j;//i计数,j下标(小孩序号-1)intk;//循环变量for(k=0;kn)10、11、(s<1)){cout<<“开始报数的小孩序号超过范围!”<
6、ild[k]=1;if((s>n)
7、
8、(s<1)){cout<<“开始报数的小孩序号超过范围!”<1){if(*p)i++;//值不为0计数if(i==m)//报到m时,置为0,重新计数,小孩数减1{*p=0;i=0;num--;}p++;//向后报数if(p>child+n-1)p=child;}//回到第0个元素//查找胜利者for(k=1;k<=n;k++)if(0!=child[k-1]){win=k;break;}delete[n]child;re
9、turnwin;}3编程练习三:Josephus问题10intjosephus(intn,intm,ints){intwin;//最后胜利者的序号int*child=newint[n],num=n;inti,j;//i计数,j下标(小孩序号-1)intk;//循环变量for(k=0;kn)
10、
11、(s<1)){cout<<“开始报数的小孩序号超过范围!”<
此文档下载收益归作者所有