#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ll n,k;
int count=0;
cin>>n>>k;
for(int i=0;i<k;i++)
{
if(n%10!=0){
n=n--;
}
else {
n=n/10;
}
}
cout<<n<<endl;
}
在环路内部执行递减操作后,n的值不变
当用n--
减少n
时,通过将其分配回
n = n--;
仅n--;
就足够了(已清理代码(:
#include <iostream>
int main()
{
long long n,k;
std::cin >> n >> k;
for(int i = 0; i < k; i++)
{
if (n % 10 != 0) { n--; }
else { n /= 10; }
}
std::cout << n << 'n';
}
输入:15 6
输出:1
和往常一样,赋值和递增/递减应该分别进行,否则将导致undefined behavior
。CCD_ 7、CCD_ 8或CCD_。
另请参见
为什么是"使用命名空间std"被认为是不好的做法?
为什么我不应该#include<bits/stdc++.h>?
增量前与增量后
您正在递减N的值,但为其分配旧值。替换:
n=n--;
带有:
n--;