C++ 为什么';这个代码不能去掉中间的数字吗? #包括 #包括 使用名称空间std; int main(){ int n,l=0,a,s,d,w; cin>>n; a=n; while(a!=0){ l++; a=a/10; } 如果(l%2==0){ s=n/pow(10,(l/2)+1); w=功率(10,(l/2)-1); d=n%w; }否则{ s=n/pow(10,l/2+1); w=功率(10,l/2); d=n%w; } cout
C++ 为什么';这个代码不能去掉中间的数字吗? #包括 #包括 使用名称空间std; int main(){ int n,l=0,a,s,d,w; cin>>n; a=n; while(a!=0){ l++; a=a/10; } 如果(l%2==0){ s=n/pow(10,(l/2)+1); w=功率(10,(l/2)-1); d=n%w; }否则{ s=n/pow(10,l/2+1); w=功率(10,l/2); d=n%w; } cout,c++,C++,d不是输出的一部分。因此不会显示它的计算结果 #include<iostream> #include<cmath> using namespace std; int main(){ int n,l=0,a,s,d,w; cin>>n; a=n; while(a!=0){ l++; a=a/10; } if(l%2==0){ s=n/pow(10,(l/2)+1);
d
不是输出的一部分。因此不会显示它的计算结果
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,l=0,a,s,d,w;
cin>>n;
a=n;
while(a!=0){
l++;
a=a/10;
}
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=pow(10,(l/2)-1);
d=n%w;
} else{
s=n/pow(10,l/2+1);
w=pow(10,l/2);
d=n%w;
}
cout<<s*(pow(10,(l/2)-1));
}
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=功率(10,(l/2)-1);
d=n%w;
}否则{
s=n/pow(10,l/2+1);
w=功率(10,l/2);
d=n%w;
//如果n==12345,我得到
//s=12
//w=100
//d=45
//l=5
}
coutd
不是输出的一部分。因此不会显示它的计算结果
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,l=0,a,s,d,w;
cin>>n;
a=n;
while(a!=0){
l++;
a=a/10;
}
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=pow(10,(l/2)-1);
d=n%w;
} else{
s=n/pow(10,l/2+1);
w=pow(10,l/2);
d=n%w;
}
cout<<s*(pow(10,(l/2)-1));
}
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=功率(10,(l/2)-1);
d=n%w;
}否则{
s=n/pow(10,l/2+1);
w=功率(10,l/2);
d=n%w;
//如果n==12345,我得到
//s=12
//w=100
//d=45
//l=5
}
cout您没有在上次计算中添加d
部分:
l
应以不同方式修改偶数和奇数
尝试:
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=功率(10,(l/2)-1);
d=n%w;
l=l/2-1;
}否则{
s=n/pow(10,(l/2)+1);
w=功率(10,l/2);
d=n%w;
l=l/2;
}
cout您没有在上次计算中添加d
部分:
l
应以不同方式修改偶数和奇数
尝试:
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=功率(10,(l/2)-1);
d=n%w;
l=l/2-1;
}否则{
s=n/pow(10,(l/2)+1);
w=功率(10,l/2);
d=n%w;
l=l/2;
}
cout这是工作代码
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=pow(10,(l/2)-1);
d=n%w;
l = l/2 - 1;
} else{
s=n/pow(10,(l/2) + 1);
w=pow(10,l/2);
d=n%w;
l = l/2;
}
cout<<s * pow(10, l) + d<<std::endl;
#包括
#包括
使用名称空间std;
int main()
{
int n,l=0,a,s,d,w,结果;
cin>>n;
a=n;
while(a!=0)
{
l++;
a=a/10;
}
如果(l%2==0)
{
s=n/ceil(功率(10,(l/2)+1));
w=ceil(功率(10,(l/2)-1));
d=n%w;
结果=s*(ceil(pow(10,(l/2-1)))+d;
}
其他的
{
s=n/ceil(功率(10,l/2+1));
w=ceil(功率(10,l/2));
d=n%w;
结果=s*(ceil(pow(10,(l/2)))+d;
}
cout这是工作代码
if(l%2==0){
s=n/pow(10,(l/2)+1);
w=pow(10,(l/2)-1);
d=n%w;
l = l/2 - 1;
} else{
s=n/pow(10,(l/2) + 1);
w=pow(10,l/2);
d=n%w;
l = l/2;
}
cout<<s * pow(10, l) + d<<std::endl;
#包括
#包括
使用名称空间std;
int main()
{
int n,l=0,a,s,d,w,结果;
cin>>n;
a=n;
while(a!=0)
{
l++;
a=a/10;
}
如果(l%2==0)
{
s=n/ceil(功率(10,(l/2)+1));
w=ceil(功率(10,(l/2)-1));
d=n%w;
结果=s*(ceil(pow(10,(l/2-1)))+d;
}
其他的
{
s=n/ceil(功率(10,l/2+1));
w=ceil(功率(10,l/2));
d=n%w;
结果=s*(ceil(pow(10,(l/2)))+d;
}
你能试着一行一行地看吗?@alexb那你为什么不提那行没有做你期望它做的事,你期望它做什么,它做了什么?直接操纵文本会容易得多。你试过一行一行地看吗?@alexb那你为什么不提那行这与您期望它做什么、您期望它做什么以及它做了什么无关?通过直接操纵文本,这将更容易做到。但是如果我可以,但是如果我可以,您是否可以尝试使用给定的代码(从if到last
)我试过这样做:#include#include使用名称空间std;int main(){int n,l=0,a,s,d,w;cin>>n;a=n;while(a!=0){l++;a=a/10};if(l%2==0){s=n/pow(10,(l/2)+1);w=pow(10,(l/2)-1);d=n%w;l=n%w;l=l=l/2-1;}else(s=n/10,l=2)+pow(1);d=n%w;l=l/2;}这段代码确实对我有用。可能你需要在测试之前编译它!!你有没有尝试过给定的代码(从if到last
)?12345我得到了1245。我尝试过:#include#include使用命名空间std;int main(){int n,l=0,a,s,d,w;cin>>n;a=n;while(a!=0){l++;a=a/10;}如果(l%2==0){s=n/pow(10,(l/2)+1;w=pow(10,(l/2)-1;d=n%w;l=l/2-1;}否则{s=n/pow(10,(l/2)+1);w=pow(10,l/2);d=n%w;l=l/2;}这段代码对我来说确实有效。也许你需要在测试前编译它!!