用dev c++编程 输入正整数n,1<=n<=6,输出长度为n的所有01字符串,每行一个串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用dev c++编程 输入正整数n,1<=n<=6,输出长度为n的所有01字符串,每行一个串相关的知识,希望对你有一定的参考价值。

就是说,输入的n=1时输出的是1和0,n=2时输出11,10,01,00,这样的。
可以的话尽量简单一些,最好有注释

参考技术A 方法1:其实如果这是oj里头的一道题,你可以打表。

方法2:
//把一个10进制的数字转换成2进制的

string to2(int x,int len)
string ans;

while(x>0)
char ch=(x%2)+'0';
ans=ch+ans;
x/=2;


while(ans.size()<len)ans="0"+ans;//让返回的字符串的长度一定要到len长度

return ans;



//计算2^x,就是2的x次方

int ci(int x)
if(x==0)return 1;
int ans(1);
for(int i = 1;i<=x;++i)
ans*=2;


return ans;



int main()
//按照题目要求,其实就是输出从(2^in-1)到0的二进制表示

int in;cin>>in;
for(int i = ci(in)-1;i>=0;--i)//从(2^in-1)到0,遍历过去
cout<<to2(i,in)<<endl;//把i这个10进制的整数转化为2进制,然后输出


return 0;

参考技术B #include<stdio.h>
main()

int i,j,n,m,a[];
scanf("%d",&n);
while(n<1&&n>6)

printf("输入错误,请从新输入:");
scanf("%d",&n);

m=pow(2,n);
for(i=0;i<m;i++)

int p=0;
while(i!=0) if(i%2!=0) a[p]=1; else a[i]=0; i/=2; p++;
for(int j=p-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
其实这个题就是叫你用二进制写出(0~2^n)!
参考技术C /* Note:Your choice is C IDE */
#include "stdio.h"
#define MAX 1000
void fun(int n,char *str)

if(n==0)
printf("%s\n",str); //输出当前的字符串

else

str[n-1]='1';//设置当前字符为1
fun(n-1,str);//递归调用继续设置
str[n-1]='0';//设置当前字符为0
fun(n-1,str);//继续递归调用


void main()

char str[MAX]=0;
int n;
printf("请输入n:");
scanf("%d",&n);
fun(n,str);
本回答被提问者和网友采纳

周一编程总结2

 
7-2 求最大值及其下标 (20 分)

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

输入样例:

6
2 8 10 1 9 10

输出样例:

10 2

2.实验代码

#include <stdio.h>

int main(){
int n, i, num, max, maxPos;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &num);
if(i==0){
max = num;
maxPos = 0;
}
else{
if(num>max){
max = num;
maxPos = i;
}
}
}
printf("%d %d", max, maxPos);

return 0;
}

3.流程图

技术图片

4.遇到的问题及解决办法

a.不很清楚如何控制数的多少

b.不知道如何找出其最大值和其坐标

c。通过查看同学的编程代码有了大概的思路。

5.运行截图

技术图片

 

 

以上是关于用dev c++编程 输入正整数n,1<=n<=6,输出长度为n的所有01字符串,每行一个串的主要内容,如果未能解决你的问题,请参考以下文章

C++编程基础题解:插入排序

N为正整数,计算从1到N的所有整数中包含数字1的个数.用(c++)

c++ 分解数2

程序猿的第172天:N个正整数快速排序

用C语言编程,输入一个正整数,计算并显示该数的各位数字之和。

用C语言编程:判断输入的正整数是不是既是3又是5的整数倍,若是则输出yes,否则输出no