Función a intervalos
#include <cstdio>
#include <cmath>
#include <vector>
double function(double x){
double y=0;
if(0<=x&&x<2) y=2.5-x;
else if(2<=x&&x<4) y=2-1.5*pow(x-3,2);
else if(4<=x&&x<6) y=x/2-1.5;
return y;
}
int main(){
std::vector<double> vec;
int m;
scanf("%d",&m);
double x;
for(int i=0;i<m;i++){
scanf("%lf",&x);
vec.push_back(function(x));
}
for(int j=0; j<m; j++){
if(j==m-1) printf("y=%.1f",vec[j]);
else printf("y=%.1f\n",vec[j]);
}
return 0;
}
Error:
错 : vector <double> vec;
对 : std :: vector <double> vec;
Motivo: Hu Fan, "Notas de algoritmo"
factorial
#include <cstdio>
#include <vector>
int main(){
std::vector<long long> vec;
int m,n;
scanf("%d",&m);
long long sum;
for(int j=0;j<m;j++){
scanf("%d",&n);
sum=1;
for(int i=1;i<=n;i++) sum*=i;
vec.push_back(sum);
}
for(int k=0;k<m;k++) printf("%lld\n",vec[k]);
return 0;
}
提示:注意输出结果可能超32位整型。所以定义long long 型
Ver "Notas de algoritmo" Hu Fan
Informe circular
La pregunta requiere el uso de una lista enlazada circular. En realidad, es muy simple, solo maneje la eliminación del nodo. La siguiente es la implementación del código C ++. No hay muchos programas centrales En init, se construye una lista enlazada circular. La declaración principal es un tiempo en principal, donde el encabezado está listo para salir y luego eliminarlo.
//重点:while((head = head->next)&&--k);
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
typedef struct Node{
int index;
struct Node *next;
struct Node *pre;
}Node,*Nodeptr;
Nodeptr init(int n){
Nodeptr head = (Nodeptr)malloc(sizeof(Node));
Nodeptr p = head;
head->index = 1;
for(int i = 2;i<=n;i++){
Nodeptr node = (Nodeptr)malloc(sizeof(Node));
node->index = i;
p->next = node;
node->pre = p;
p = node;
}
p->next = head;
head->pre = p;
return head;
}
int main(void){
int m;
cin>>m;
int n;
for(int i = 0;i<m;i++){
cin>>n;
Nodeptr head = init(n);
Nodeptr p;
while(n){
int k = 2;
while((head = head->next)&&--k);
cout<<head->index<<" ";
head->next->pre = head->pre;
head->pre->next = head->next;
p = head;
head = head->next;
free(p);
n--;
}
cout<<endl;
}
return 0;
}