(C++)输入符号及符号个数打印沙漏
Posted Yethon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++)输入符号及符号个数打印沙漏相关的知识,希望对你有一定的参考价值。
思路:想将所有沙漏所需符号数遍历一遍,然后根据输入的数判断需要输出多少多少层的沙漏,然后分两部分输出沙漏。
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main() 5 { 6 int z=0; 7 char fir[20]="0"; 8 int sec[20]={0},thi[20]={0},fo[21]={0}; 9 int len=0; 10 cin>>fir; 11 len=strlen(fir); 12 int len2=len; 13 for(int i=0;i<len;i++) sec[i]=fir[i]-\'0\'; 14 int i=len-1; 15 for(i;i>0;i--) 16 { 17 thi[i]=2*sec[i]+z; 18 z=thi[i]/10; 19 thi[i]%=10; 20 } 21 int t=thi[i]; 22 23 thi[i]=2*sec[i]+z; 24 if(t>=10) 25 { 26 len2++; 27 thi[i]=2*sec[i]+z; 28 fo[0]=thi[i]/10 ; 29 thi[i]%=10; 30 for(int j=0;j<len;j++) fo[j+1]=thi[j]; 31 } 32 else 33 { 34 thi[i]=2*sec[i]+z; 35 for(int j=0;j<len2;j++) fo[j]=thi[j]; 36 } 37 38 z=0; 39 for(int k=0;k<len2;k++) 40 { 41 for(int j=0;j<len;j++) 42 { 43 if(sec[j]==fo[k]){sec[j]=100;z=11;break;} 44 } 45 if(z!=11) {z=0;break;} 46 if(z==11) z=10; 47 48 } 49 50 if(z==10) 51 { 52 cout<<"Yes"<<endl; 53 for(int j=0;j<len2;j++) cout<<fo[j]; 54 } 55 if(z!=10) 56 { 57 cout<<"No"<<endl; 58 for(int j=0;j<len2;j++) cout<<fo[j]; 59 } 60 return 0; 61 }
--------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:Vansnc
来源:CSDN
原文:https://blog.csdn.net/vansnc/article/details/81458526
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:Vansnc
来源:CSDN
原文:https://blog.csdn.net/vansnc/article/details/81458526
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于(C++)输入符号及符号个数打印沙漏的主要内容,如果未能解决你的问题,请参考以下文章