1 条题解
-
0
C :
#include<stdio.h> int t[10]; void f(int score,int idx) { int i; if(idx==10) { if(100==score) { for(int i=0;i<10;i++) { printf("%d",t[i]); } printf("\n"); } return ; } t[idx]=0; f(score-idx-1,idx+1); t[idx]=1; f(score<<1,idx+1); } int main() { f(10,0); return 0; }
C++ :
#include<iostream> using namespace std; int a[10]; void f(int score,int idx) { int i; if(idx==10) { if(100==score) { for(i=0;i<10;i++) { cout<<a[i]; } cout<<endl; } return; } a[idx]=0; f(score-idx-1,idx+1); a[idx]=1; f(score<<1,idx+1); } int main() { f(10,0); return 0; }
Java :
public class Main{ public static void main(String[] args) { for(int i=0;i<1024;i++){ String s=String.format("%010d", Integer.parseInt(Integer.toBinaryString(i))); f(s); } } public static void f(String s){ boolean b=false; int f = 10; for(int i=0;i<s.length();i++){ if(s.charAt(i)=='0') {f=f-i-1; //System.out.println(f); } else { f=f*2; //System.out.println(f); } } if(f==100){ b=true; System.out.println(s); } } }
- 1
信息
- ID
- 837
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者