算法竞赛入门经典中的基础数学题

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 }
View Code


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 }
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。