算法竞赛入门经典中的基础数学题
uva575:这道题目没什么好说的
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<string> 7 #include<cctype> 8 #include<vector> 9 #include<map> 10 using namespace std; 11 const int maxn=40; 12 string s; 13 int a[maxn]; 14 int main() 15 { 16 long long sum; 17 while(cin>>s) 18 { 19 if(s[0]==‘0‘) 20 break; 21 sum=0; 22 memset(a,0,sizeof(a)); 23 for(int i=0;i<s.length();i++) 24 a[s.length()-i-1]=s[i]-‘0‘; 25 for(int i=0;i<s.length();i++) 26 sum+=a[i]*(pow(2,i+1)-1); 27 cout<<sum<<endl; 28 } 29 return 0; 30 }
uva10110:
这道题目考虑最后一个数的因子,如果是偶数则是关闭的,奇数则是开着的,显然一般数都是偶数,只有一种情况,是全部平方数的时候才是奇数,于是判断
sqrt(n)*sqrt(n)是否等于n即可
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 long long n; 7 void judge() 8 { 9 long long b=sqrt(n); 10 if(b*b==n) 11 cout<<"yes"<<endl; 12 else 13 cout<<"no"<<endl; 14 } 15 int main() 16 { 17 while(cin>>n) 18 { 19 if(n==0) 20 break; 21 judge(); 22 } 23 return 0; 24 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。