蓝桥杯2012奇怪的比赛
#include<iostream> using namespace std; void fun(int *a,int num,int grade) { if(num>10) { if(grade==100) { for(int i=1;i<11;i++)cout<<a[i]; cout<<endl; } return; } a[num] = 0; fun(a,num+1,grade-num); a[num] = 1; fun(a,num+1,grade*2); } int main() { int a[11]; fun(a,1,10); return 0; }暴力求解,参考他人
#include<iostream> using namespace std; int main(){ for(int q=0;q<=1;q++) for(int w=0;w<=1;w++) for(int e=0;e<=1;e++) for(int r=0;r<=1;r++) for(int t=0;t<=1;t++) for(int y=0;y<=1;y++) for(int u=0;u<=1;u++) for(int i=0;i<=1;i++) for(int o=0;o<=1;o++) for(int p=0;p<=1;p++) { int sum=10; q==0?sum-=1:sum*=2; w==0?sum-=2:sum*=2; e==0?sum-=3:sum*=2; r==0?sum-=4:sum*=2; t==0?sum-=5:sum*=2; y==0?sum-=6:sum*=2; u==0?sum-=7:sum*=2; i==0?sum-=8:sum*=2; o==0?sum-=9:sum*=2; p==0?sum-=10:sum*=2; if(sum==100) cout<<q<<w<<e<<r<<t<<y<<u<<i<<o<<p<<endl; } }