1.数学思想在算法题中的应用:
这道题的重点在于把每周的总存储求出来,然后用X与K表示,定为W,W52=N可以求出W,由W=AX+BK,可以将K从小到大遍历,直至BK=W,求出第一个符合要求的X值即为X最大值,对应的K也为最小值.
代码如下:`#include
using namespace std;
int main(){
int n;
while(cin>>n){
int W;
W=n/364;
int X;
int ans=0,ansy=0;
for(int K=1;K
X=W-3*K;
if(X>0&&X<=100){
ans=X;
ansy=K;
break;
} }cout<<ans<<endl<<ansy<<endl;}
}`
2.回文数的判定:
回文数的判定的关键在于将一个数值转换为字符串类型,然后先经过0的判断,从左右两边依次遍历,如果有不相等的情况出现就直接返回0,否则返回1即可;
代码如下:`#include
using namespace std;
int isPalindrome(int x){
if(!x||!(x%10)){
return 0;
}
string a=to_string(x);
int right=a.size()-1;
int left=0;
while(left<right){
if(a[left]!=a[right]){
return 0;
}
left++;
right--;
}return 1;}
`
