标题:约瑟夫环的递归写法 2个铜板买
只看楼主
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
我的好像是递归。。你看看呢

学习需要安静。。海盗要重新来过。。
2008-05-21 15:34
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
说是递归其实递推更合适。。。非要用递归做什么呢?

学习需要安静。。海盗要重新来过。。
2008-05-21 15:42
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
得分:0 
非常感谢
虽然很麻烦
但是学了递归总不能不用吧

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-05-21 15:52
Q1007665007
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-5-16
得分:0 
看来你对算法和结构的观念已经开始出现问题了

QQ1007665007
QQ群61762856
2008-05-21 16:07
sskicgah
Rank: 1
来 自:漳州
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-1-12
得分:0 
学的东西多了,不能每次都用全吧,重要的是适用。
2008-05-21 20:41
炽天使
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-5-8
得分:0 
你要清理机箱和风扇吧。。。
2008-05-21 21:29
炽天使
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-5-8
得分:0 
散热硅胶。。风扇是不是坏了,还有就是灰是不是多了?
2008-05-21 21:34
icefly
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-5-21
得分:0 
呵呵 第一次来,什么都不懂,不过楼主说20分钟关电脑,偶说下,要是很准确的话,20分钟关一次,那可能就是别人恶作剧的吧,记得以前有人教过这个就是把写好的批处理放到“Documents and Settings-->User-->〔开始〕菜单-->程序”目录下。这时的User指的是你登录的用户名。

“Documents and Settings-->All User-->〔开始〕菜单-->程序”
开机的时候就会自动运行,也可能是多复制几个放到你经常打开或许必须打开的文件夹下,同时放上一个AUTORAN.INF 打开文件夹就会运行程序。当然还有好几种方法,隐藏的深的写注册表。但是估计恶搞的话,一般第一种方法,恶搞不会很费劲,呵呵。如果不是,就进BIOS,看一下FAN转速,顺便从开机的时候,每隔几分钟摸一下机箱的温度,不正常的话,就可以开机箱检查一下风扇看一下CPU的散热片了。楼上的也说了两种情况,我就不说了。还是不行的话,检查一下南桥芯片,温度高了,同样会自动关机,值得一提的是,如果你超频了,先降下来再说吧。嘻嘻,偶就是硬件还可以,编程就是一条虫子。学半年了,什么都没有听懂。还请各位高手多多指教。
2008-05-21 23:51
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
得分:0 
无声的解释
main()
{
    int a[100];
    .
    .
    .
    p=a;
    for(i=0;i<n,i++)/*给每个学生编号*/
    *(p+i)=i+1;
    i=0;/*循环变量*/
    k=0;/*报数计数变量*/
    j=0;/*退出人数*/
    while(j<n-1)
    {
    if(*(p+i)!=0)k++;/*==0则指向0,k值不变,i变*/
    if(k==m)
    {
     *(p+i)=0;/*退出学生编号为0*/
     k=0;/*恢复为0*/
     j++;
     }
     i++;
     if(i==n)i=0;/*从头指向*/
     }
     while(*p==0)p++;
     printf();
        
}              /*看前面有多少0*/
 ps:k = 1,2,3,4,0,1,2,3,4,0
        1,2,3,4,4,0,1,2,3,3
        4,0,1,2,2,2,3,4,.....         1,2,3,4,5,6,7,8,9,10

[[it] 本帖最后由 liyanhong 于 2008-5-22 11:49 编辑 [/it]]

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-05-22 07:38
砚曦
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-4-5
得分:0 
用顺序表很容易实现,效率比循环链表要高
const int Maxsize=100;
template <class T>
class SeList
{
    public:
        SeList() {length=0;}
        SeList( int n);
        ~SeList(){}
        T Delete( int i);
        int Length();
    private:
        T date[Maxsize];
        int length;
};
template <class T>
SeList<T>::SeList( int n )
{
//    if(n>Maxsize)
//        throw "非法参数!";
    for( int i=0; i<n; i++)
        date[i]=i+1;
    length=n;
}
template <class T>
T SeList<T>::Delete( int i )
{
//    if(length==0)
//        throw "下溢";
//    if(i<1 || i>length)
//        throw "位置异常";
    T x=date[i-1];
    for(int j=i-1; j<length-1 ;j++)
        date[j]=date[j+1];
    length--;
    return x;
}
template <class T>
int SeList<T>::Length()
{
    return length;
}
///////////////////////////////////////////////////////////
#include<iostream.h>
#include"SeList.h"
int main()
{
    cout<<"请输入m,n:\n";
    int m,n,x=0;
    cin>>m>>n;
    SeList<int> A(n);
    cout<<"出列序号依次为:\n";
    for(;A.Length()>=1;)
    {
        x=(x+m-1)%A.Length();
        cout<<A.Delete(x+1)<<" ";
    }
    return 1;
}
2008-05-25 23:51
  • 23
  • 2/3页
  • 1
  • 2
  • 3



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-215402-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051111 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved