1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<math.h> int a[10005]; void ans(int k) { k=2; int i; for(i = 0;i<10000;i++){ a[i]=a[i]*k; } for(i = 0;i<10000;i++){ a[i+1] = a[i+1]+a[i]/10; a[i]=a[i]%10; } } int main() { int n; scanf("%d",&n); a[0]=2; int i; int k = 2; for(i=1;i<n;i++){ ans(k); } int p; for(i=10005;i>=0;i--){ if(a[i]!=0){ p=i; break; } } for(i=p;i>=0;i--){ printf("%d",a[i]); } return 0; }C++ :
#include <bits/stdc++.h> using namespace std; /* 计算2个二进制的数0或者1(字符)进行and or xor运算的结果 */ char calc(char a,char b,string x){ char r; if(x == "and"){ if(a == '1' && b == '1'){ r = '1'; }else{ r = '0'; } } else if(x == "or"){ if(a == '1' || b == '1'){ r = '1'; }else{ r = '0'; } }else if(x == "xor"){ if(a != b){ r = '1'; }else{ r = '0'; } } return r; } int main(){ //定义完函数,调试一下,做一步测一步 //cout<<calc('1','0',"xor"); //开始编写程序 string s1,s2,r,x;//s1 s2代表2个要运算的数,r代表结果,x代表运算符 int len,i,j; getline(cin,s1); getline(cin,s2); getline(cin,x); //得到较长的字符串的长度,按照这个长度运算,短的要在前面补0(相当于倒过来后面补0) len = s1.length() > s2.length()?s1.length():s2.length(); if(s1.length() < len){ for(i = 1;i <= len - s1.length();i++){ s1 = '0' + s1; } } else if(s2.length() < len){ for(i = 1;i <= len - s2.length();i++){ s2 = '0' + s2; } } //测试一下补0是否正确 //cout<<s1<<" "<<s2<<endl; //逐位运算 for(i = 0;i < len;i++){ r = r + calc(s1[i],s2[i],x); } //结果从第一个非0开始输出(这里删除r中前面的0,注意如果r都为0,会删光的,考虑特殊情况) while(r[0] == '0'){ r.erase(0,1); } if(r.length() != 0){ cout<<r<<endl; }else{ cout<<"0"<<endl; } }Java :
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); List<Integer> s1=new ArrayList<Integer>(); s1.add(2); for(int i=1;i<n;i++){ for(int j=0;j<s1.size();j++){ int tmp=s1.get(j); s1.set(j, tmp*2); } for(int k=0;k<s1.size()-1;k++){ int tmp=s1.get(k); if(tmp>=10){ int tmp2=s1.get(k+1); s1.set(k, tmp%10); s1.set(k+1, tmp2+1); } } int tmp=s1.get(s1.size()-1); if(tmp>=10){ s1.set(s1.size()-1, tmp%10); s1.add(1); } } for(int i=s1.size()-1;i>=0;i--){ System.out.print(s1.get(i)); } } }Python :
print(2**int(input()))
- 1
信息
- ID
- 261
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者