问问 用c语言怎么写
约瑟夫环 (用C语言)N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号。
输入只有一行,包括一个整数N(1<=N<=3000)及一个整数p(1<=p<=5000)。
按退出顺序输出每个退出人的原序号,数据间以一个空格分隔,但行尾无空格。
输入7 3
输出3 6 2 7 5 1 4
(用c语言)
如下:
#include <stdio.h>
#include <string.h>
int main()
{
int p;
int N;
int a = {0};
int i;
int j;
int k = 0;
printf("请输入N和p\n");
scanf("%d%d",&N,&p);
for(i = 0; i < N; i++)
{
a = i+1;
}
while (N > 0)
{
i = (i + p - 1) % N;
k++;
printf("%d\t",a);
for(j = i+1; j < N; j++)
{
a = a;
}
N--;
}
return 0;
} 王之叹息 发表于 2021-5-25 22:22
如下:
格式错误 显示 1874971845 发表于 2021-5-25 23:36
格式错误 显示
数据输出时还要有个换行
1874971845 发表于 2021-5-25 23:40
数据输出时还要有个换行
大锅 那这也算解决了吧{:5_104:},我再给你送个鱼币(疯狂暗示){:5_109:}
给我个最佳呗大锅
王之叹息 发表于 2021-5-26 07:04
给我个最佳呗大锅
给了 大哥我就是就是想知道咋改 1874971845 发表于 2021-5-26 13:57
给了 大哥我就是就是想知道咋改
好吧,你再说清楚点,这不跟你举得例子基本一样吗,格式是哪里错误了,你的意思是按完7 3连回车都不按直接显示一串数字吗? 王之叹息 发表于 2021-5-26 14:08
好吧,你再说清楚点,这不跟你举得例子基本一样吗,格式是哪里错误了,你的意思是按完7 3连回车都不按直 ...
相隔一个空格 行尾无空格 但有一个换行
1874971845 发表于 2021-5-26 19:50
相隔一个空格 行尾无空格 但有一个换行
求求了
1874971845 发表于 2021-5-26 19:52
求求了
第一个:
#include <stdio.h>
#include <string.h>
int main()
{
int p;
int N;
int a = {0};
int i;
int j;
int k = 0;
printf("输入");
scanf("%d%d",&N,&p);
for(i = 0; i < N; i++)
{
a = i+1;
}
printf("输出");
while (N > 0)
{
i = (i + p - 1) % N;
k++;
printf("%d ",a);
for(j = i+1; j < N; j++)
{
a = a;
}
N--;
}
return 0;
}
第二个
#include <stdio.h>
#include <string.h>
int main()
{
int p;
int N;
int a = {0};
int i;
int j;
int k = 0;
printf("输入");
scanf("%d%d",&N,&p);
printf("输出");
for(i = 0; i < N; i++)
{
a = i+1;
}
while (N > 1)
{
i = (i + p - 1) % N;
k++;
printf("%d ",a);
for(j = i+1; j < N; j++)
{
a = a;
}
N--;
if(i == N)
{
i = 0;
}
}
printf("\n%d", a);
return 0;
}
再要不然直接把你需要的格式打出来 OK了 OK了 麻烦你了辛苦了
页:
[1]