在网上上看了道作业题,要求是求整数的右起第k位数字的,作为一个爱好者,我练了练手
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> #include<string> using namespace std; void digit(int n,int k) { char m[50]; int len; itoa(n,m,10); len=strlen(m); if(k<0) cout<<"错误"<<endl; else { if(len>=k) cout<<"第"<<k<<"位的值为:"<<m[len-k]<<endl; else cout<<"0"<<endl; } } int main() { digit(238953857,9); cin.get(); return 0; }
看到另一个人给的答案时有点惭愧了,不禁想,我为什么没想到呢.
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> using namespace std; void digit(int n,int k) { int num; int l=1; num=n; if(k<0) cout<<"错误"<<endl; for(;l<k;l++) { num/=10; } cout<<"第"<<k<<"位的数值是:"<<num%10<<endl; } int main() { digit(23456789,4); cin.get(); return 0; }
不过程序的效率还是我的高,哈哈