yuhuashilt.com键串位了。左边的那个串成了 Tab 右边那个串成…

请问怎样用C++使用递归调用方法将一个n位整数转换成字符串_百度知道
请问怎样用C++使用递归调用方法将一个n位整数转换成字符串
#include &iostream&char* Convert(int n,char *strResult)
char *p = strR
if(n/10 != 0)
p = Convert(n/10,p);
} *p = n%10 + '0';
*p = '\0';
char buff[20];
Convert(n,buff);
cout&&buff&& return 0;
其他类似问题
为您推荐:
这个应该不用递归,直循环就可以了,这是我的方法int iN//用于保存你输入的数字cin&&iNchar tmp[12];//用于保存逆向的字符串char cRuslt[12];//用于保存结果int i=10;int j=0;//用于循环控制while(1){
tmp[j]=(iNum%i)+48;
if(iNum/i==0)
{tmp[j]=='\0';}}//循环完成后我们得到逆向的字符串 i=strlen(tmp);for(j=0;j&i;j++){
cRuslt[j]=tmp[i-j-1];}cRuslt[i-1]=='\0';这样也可以,不用递归,开销会小很多 不过应该有更简单的方法直接用C++提供的string类int nNcin&&nNUm;str&&nNcout&&
递归调用的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁将100以内的质数从小到大排成一个数字串依次完成下列五项工作叫一次操作:(1)将左边第一个数码移到数字串的最右边;(2)从左到右两位一节组成若干个两位数;(3)划去这些两位数_百度作业帮
将100以内的质数从小到大排成一个数字串依次完成下列五项工作叫一次操作:(1)将左边第一个数码移到数字串的最右边;(2)从左到右两位一节组成若干个两位数;(3)划去这些两位数
将100以内的质数从小到大排成一个数字串依次完成下列五项工作叫一次操作:(1)将左边第一个数码移到数字串的最右边;(2)从左到右两位一节组成若干个两位数;(3)划去这些两位数中的合数;(4)所剩的两位质数中有相同的,保留左边的一个,划去多余的;(5)所剩的两位质数保持数码顺序又组成一个新的数字串.问:经过1997次操作,所得的数字串是什么?
第一次操作:(1),(2)35,71,11,31,71,92,32,93,13,74,14,34,75,35,96,16,,38,99,72,(3)71,11,31,71,13,17,37,(4)71,11,31,13,17,37,(5),根据第一次操作的步骤依次完成第二次操作、第三次操作…第二次操作:,11,13,11,31,73,77,11,13,31,73,1133173,第三次:11,33,17,31111731第四次:11,73,111173第五次1731六次:7311七次:3117八次:1173循环…从以上操作可以得出:从第5次操作开始,数字1173就有这样的规律:4此操作为一变化周期,变化规律为:第一个数字是下一组的最后一个数字.(1997-4)÷4=498…1,所以1997次操作是第499周期的第一次操作,应该和第一周期的第一次即:上述中第五次操作的操作结果相同是:1731.答:经过1997次操作,所得的数字串是1731.
本题考点:
质数与合数问题.
问题解析:
此题找出100以内的所有质数,排列并按题干要求一次操作,在从第五次操作时,就出现了周期变化的规律,由此即可解决问题.c++中数字内容的字符串按位转成数组_百度知道
c++中数字内容的字符串按位转成数组
请问一下,比如说我有一个数字213, 用C++通过什么办法可以按位把它变成一个数组,就是说 a[0]=2,a[1]=1,a[2]=3 ?
int a[3] ,for (i=0;i&3;i++){
c = getchar();
a[i] = c - '0';} 如果是数字转换成字符串:int my_atoi(const char *str){
int result = 0;
int signal = 1; /* 默认为正数 */
if((*str&='0'&&*str&='9')||*str=='-'||*str=='+'){
if(*str=='-'||*str=='+'){
if(*str=='-')
signal = -1; /* 输入负数 */
else return 0;
/* 开始转换 */
while(*str&='0'&&*str&='9')
result = result*10+(*str++ -'0');
return signal*
非常感谢,请问有没有别的更为简单的实现?比如什么库函数?可以给个具体的实现的例子吗?比如从213 转为a[0]=2,a[1]=1,a[2]=3
如果是数字转换成字符串,有库函数atoi..但实现不了你说的这个功能..如果一定要你说的这样..还是要自己写代码..自己写蛮好的..如果你是要把输入的数字转换成数组.用int a[3] ,for (i=0;i&3;i++){
c = getchar();
a[i] = c - '0';} 就可以了..如果是要从一个整数转换数组..那就这样:int num = 213 ,int t =for (i = 2; i &= 0; i--){
a[i] = t%10;
t = t/10;}
其他类似问题
为您推荐:
其他3条回答
字符串数据 转换成 字符数组:
#include&iostream&
#include&string&
void func1(char * b , string value );
int main()
cout&&&please input a number&&&
char a[100];
func1(a,s);
for(int i = 0 ; a[i] != '\0' ; i++)
cout&&a[i];
void func1(char * b , string value)
for(int j = 0 j != value.length() ; j ++)
*(b+j) = value[j];
*(b+value.length()) = '\0';
// 设置数组尾 eof
字符串数据转换成 数值 数组
#include&iostream&
#include&stdlib.h&
void func2(int...
#include &stdlib.h&   #include &stdio.h&   int main(void)   {   
int number = 12345;   
char string[25];   
itoa(number, string, 10);   
printf(&integer = %d string = %s\n&, number, string);   
return 0;   }itoa用法,char *itoa(int value,char *string,int radix)   将整数value转换成字符串存入string,  radix为转换时所用基数(保存到字符串中的数据的进制基数)
你好,以下是我的实现方法,只需要把数替换成你需要的即可!int _tmain(int argc, _TCHAR* argv[]){ int a[3]; int num=213; int flag=0; while (num) {
a[flag]=(num+10)%10;
num=num/10;
flag++; } for(int i=2;i&=0;i--) {
cout&&a[i]&&& &; } system(&pause&);}
字符串的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁写一个程序,从键盘输入一个字符串,再从最右边开始向左数,按三位一个逗号的形式输出。_百度知道
写一个程序,从键盘输入一个字符串,再从最右边开始向左数,按三位一个逗号的形式输出。
写一个程序,从键盘输入一个字符串,再从最右边开始向左数,按三位一个逗号的形式输出。例如:输入abcdefgh,输出:ab,cde,fgh; 输入:123456,输出:123,456
提问者采纳
//是C写的,最大长度我定义的100你可以根据须要改,实在不行就用malloc开辟,#include&stdio.h&#include&string.h&void main(){int i,char str[100];gets(str);n=strlen(str);for(i=0;i&n;i++){ printf(&%c&,str[i]);
if((n-i-1)%3==0&&i!=n-1)
printf(&,&);}printf(&\n&);}
其他类似问题
为您推荐:
键盘输入的相关知识
其他2条回答
经测试,完全符合要求:import java.io.*;public class TestWindow { public static void main(String [] args) {
byte [] temp=new byte [100];
System.in.read(temp);
}catch(IOException e) {
e.printStackTrace();
String s=new String(temp);
char [] out=s.trim().toCharArray();
int count=0;
for(int i=0;i&out.i++) {
if(count==3) {
System.out.print(&,&);
System.out.print(out[i]);
System.out.println(); }}
这是C++写的你改一下就行了:#define N 100void main(){ char arry[N]; cout&&&please input arry:&&& cin&&
for(int i=0;i&N;i++) {
if(arry[i]!='\0')
cout&&arry[i]; else
if((i+1)%3==0)
cout&&&,&; } cout&&}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 yuhuashilt.com 的文章

 

随机推荐