这两道题咋做二进制加法Time Limit:1000MS Memory Limit:65536KTotal Submit:394 Accepted:129 Description 二进制是逢2进位的进位制,0、1是基本算符.现代的电子计算机技术全部采用的是二进制,因为它只使用0、1
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 15:18:54
这两道题咋做二进制加法Time Limit:1000MS Memory Limit:65536KTotal Submit:394 Accepted:129 Description 二进制是逢2进位的进位制,0、1是基本算符.现代的电子计算机技术全部采用的是二进制,因为它只使用0、1
这两道题咋做
二进制加法
Time Limit:1000MS Memory Limit:65536K
Total Submit:394 Accepted:129
Description
二进制是逢2进位的进位制,0、1是基本算符.现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现.二进制运算在所有类型的计算机中都是最基本的运算.
二进制加法与十进制加法不同的是逢2进1.
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 11
根据以上运算法则来计算两个二进制数相加的和.
Input
第一行为第一个二进制数.
第二行为第二个二进制数.
这两个二进制数都不会超过30个二进制位,并且不会是以0开头的非零数.
Output
输出这两个二进制数的和( 也用二进制数表示出来 ).
Sample Input
1000100
1001010
Sample Output
10001110
Source
还有这个求简单算法不能超时
素数回文
Time Limit:2000MS Memory Limit:65536K
Total Submit:2173 Accepted:544
Description
小明对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在小明想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数.(5
这两道题咋做二进制加法Time Limit:1000MS Memory Limit:65536KTotal Submit:394 Accepted:129 Description 二进制是逢2进位的进位制,0、1是基本算符.现代的电子计算机技术全部采用的是二进制,因为它只使用0、1
第一题
#include
int getval(char s[])
{
\x09int ret=0,i;
\x09for(i=0;s[i];i++)
\x09\x09ret=ret*2+s[i]-'0';
\x09return ret;
}
void out(int n)
{
\x09if(n>0)
\x09{
\x09\x09out(n/2);
\x09\x09printf("%d",n%2);
\x09}
}
int main()
{
\x09char s[100];
\x09int a,b;
\x09while(scanf("%s",s)!=EOF)
\x09{
\x09\x09a=getval(s);//把二进制转化成十进制
\x09\x09scanf("%s",s);
\x09\x09b=getval(s);
\x09\x09a+=b;
\x09\x09if(a==0)
\x09\x09{
\x09\x09\x09puts("0");
\x09\x09}
\x09\x09else
\x09\x09{
\x09\x09\x09out(a);//十进制转二进制
\x09\x09\x09puts("");
\x09\x09}
\x09}
return 0;
}
第二题
#include
#include
using namespace std;
const int MAX=100000001;
int p[100002];
int split(int bit[],int n)
{
\x09int len=0;
\x09for(len=0;n>0;len++,n/=10)
\x09\x09bit[len]=n%10;
\x09return len;
}
int getval(int n,int s)
{
\x09int bit[100];
\x09int len=split(bit,n),i;
\x09for(i=s;i
\x09return n;
}
bool prime(int n)
{
\x09if(n<2)return false;
\x09int i;
\x09for(i=2;i*i<=n;i++)if(n%i==0)return false;
\x09return true;
}
void out(int n)
{
\x09if(n>0)
\x09{
\x09\x09out(n/10);
\x09\x09putchar(n%10+'0');
\x09}
\x09
}
int main()
{
\x09int i,a,b,c=0;
\x09for(i=1;true;i++)
\x09{
\x09\x09a=getval(i,0);
\x09\x09b=getval(i,1);
\x09\x09if(a>=MAX&&b>=MAX)break;
\x09\x09if(a
\x09\x09if(b
\x09}
\x09sort(p,p+c);
\x09//for(i=0;i
\x09{
\x09\x09for(i=0;p[i]\x09\x09for(;i
\x09\x09\x09//printf("%d\n",p[i]);
\x09\x09\x09out(p[i]);
\x09\x09\x09putchar('\n');
\x09\x09}
\x09\x09puts("");
\x09}
return 0;
}