问题标题: 1000的N种解法(持续更新)

2
1
已解决
李承耀
李承耀
新手光能
新手光能

解法1,直接cout:

#include<iostream>
using namespace std;
int main(){
	cout<<"Hello, World!";
	return 0;
}

解法2,直接printf:

#include<iostream>
using namespace std;
int main(){
	printf("Hello, World!");
	return 0;
}

解法3,定义一个字符串,赋值为"Hello, World!"然后输出

#include<iostream>
using namespace std;
int main(){
	string s="Hello, World!";
	cout<<s; 
	return 0;
}

解法4,定义一个字符数组,赋值为"Hello, World!"然后输出

#include<iostream>
using namespace std;
char s[100]="Hello, World!";
int main(){
	cout<<s; 
	return 0;
}

解法5,定义一个字符串,循环遍历输出

#include<iostream>
using namespace std;
int main(){
	string s="Hello, World!";
	for(int i=0;i<s.size();i++)cout<<s[i];
	return 0;
}

解法6,直接puts

#include<iostream>
using namespace std;
int main(){
	puts("Hello, World!");
	return 0;
}

 

李承耀在2022-11-11 20:26:10追加了内容

解法7,递归思路1,每次传递字符串,然后输出头部,然后传删除头部后的字符串

#include<iostream>
using namespace std;
void f(string s){
	if(s=="")return;
	cout<<s[0];
	f(s.erase(0,1)); 
}
int main(){
	string s="Hello, World!";
	f(s);
	return 0;
}

 

李承耀在2022-11-11 20:29:13追加了内容

解法8,递归思路2,先传入字符串,先传递删除尾部后的字符串,然后每次输出尾部。

#include<iostream>
using namespace std;
void f(string s){
	if(s=="")return;
	string b=s; 
	f(s.erase(s.size()-1,1));
	cout<<b[b.size()-1];
}
int main(){
	string s="Hello, World!";
	f(s);
	return 0;
}

 

李承耀在2022-11-11 20:31:00追加了内容

解法9,定义一个字符数组,赋值为"Hello, World!"然后循环输出

#include<iostream>
#include<cstring>
using namespace std;
char s[100]="Hello, World!";
int main(){
    for(int i=0;i<strlen(s);i++){
        cout<<s[i];
    }
    return 0;
}

 

李承耀在2022-11-11 20:34:54追加了内容

解法10,递归思路3,先传入0,然后每次输出下标,再传坐标+1

#include<iostream>
using namespace std;
string s="Hello, World!";
void f(int n){
	if(n>=s.size())return;
	cout<<s[n];
	f(n+1);
}
int main(){
	f(0);
	return 0;
}

 

李承耀在2022-11-11 20:39:05追加了内容

解法11,Python解法

print("Hello, World!")

 

李承耀在2022-11-11 20:41:26追加了内容

解法12,C解法

#include<stdio.h>
int main(){
	printf("Hello, World!");
	return 0;
}

 

李承耀在2022-11-11 20:45:40追加了内容

解法13,指针解法

#include<iostream>
using namespace std;
string str="Hello, World!",*t=&str;
int main(){
	cout<<*t; 
	return 0;
}

 


0
已采纳
熊潇然
熊潇然
初级启示者
初级启示者

解法15:数组模拟链表解法

#include<bits/stdc++.h>
using namespace std;
string a=" Hello, World!";
int r[15];
int main(){
    for(int i=1;i<=a.size();i++){
        r[i]=i+1;
    }
    r[0]=1;
    int idx=r[0];
    while(idx!=a.size()+1){
        cout<<a[idx];
        idx=r[idx];
    }
    return 0;
}

 

1
赵俊哲
赵俊哲
新手天翼
新手天翼

倒序输出你忘了!!

  •  cout<<"!dlroW ,olleH";
0
0
熊潇然
熊潇然
初级启示者
初级启示者

解法8,定义一个字符数组,赋值为"Hello, World!"然后循环输出

#include<iostream>
using namespace std;
char s[100]="Hello, World!";
int main(){
    for(int i=0;i<=13;i++){
        cout<<s[i];
    }
    return 0;
}

 

0
0
王祺册
王祺册
资深守护
资深守护

解法9:

#include<bits/stdc++.h>
using namespace std;
string s[11]={"H","e","l","l","o",",","W","o","r","l","d"};
int main(){
    for(int i=0;i<=11;i++){
        cout<<s[i];
    }
    cout<<"!";
    return 0;
}

0
包思远
包思远
新手启示者
新手启示者

求最短路径,h到e距离为1,e到l距离为2,l到l距离为3,如此类推

0
0
0
0
钱帅文
钱帅文
中级天翼
中级天翼

可以参考一下洛谷的题解,五花八门

0
孟止弋
孟止弋
高级守护
高级守护

本来这么简单的题被你们搞不会了

TTVt,我的验证码真不错~

0
0
刘小川
刘小川
中级天翼
中级天翼

这道题呢么难,你们怎么做的

0
0
0
0
0
熊潇然
熊潇然
初级启示者
初级启示者

解法14:链表解法

#include<bits/stdc++.h>
using namespace std;
list<int> l;
list<int>::iterator it;
int main(){
    string a="Hello, World!";
    for(int i=0;i<a.size();i++){
        l.push_back(a[i]);
    }
    for(it=l.begin();it!=l.end();it++){
        cout<<char(*it);
    }
    return 0;
}

 

我要回答