c++输入一个数转换成二进制码流,如若码流中有五个连续的1则填入一个0
可以参考一下
#include <cstdio>
using namespace std;
char *convert(int n){
char *ans = new char[100]{0};
char stk[100];
int top = -1;
int k=0;
while(n!=0){
if(n&1){
k++;
if(k%5!=0) stk[++top] = '1';
else{
stk[++top] = '1';
stk[++top] = '0';
}
} else {
k = 0;
stk[++top] = '0';
}
n>>=1;
}
for(int i=0; top!=-1; i++){
ans[i] = stk[top--];
}
return ans;
}
int main(){
// int n = 180159;
int n;
scanf("%d", &n);
char *ans = convert(n);
printf("%s", ans);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:(1)由于我们需要进行进程数和运行时间、运行数及时间/进程数的比对,因而我们需要控制程序可输入进程数。
(2)由于资源类数目不同对运行时间造成的影响较大,因此在进行实验比对时,不能放任资源类数目随机为任意数字,而是需要固定一个数据;除此以外的情况可以控制资源类数目为随机数。
(3)如每个进程的最大资源需求数、每个进程的目前资源需求数、系统当前资源数等数据要随机生成这类数据可以设置为一定范围内的随机数,每个进程的目前资源需求数也为随机数,但是得控制它的数据小于等于最大需求数目。
(4)进程的已分配资源数由最大资源需求数-目前资源需求数计算得出。